diff --git a/apps/app-identifier/src/main.cpp b/apps/app-identifier/src/main.cpp index ef82fcb..123963a 100644 --- a/apps/app-identifier/src/main.cpp +++ b/apps/app-identifier/src/main.cpp @@ -19,7 +19,7 @@ int main(int argc, char *argv[]) parser.setApplicationDescription("Identify in what capacity the process is running."); parser.addHelpOption(); parser.addVersionOption(); - parser.addPositionalArgument("PIDs", "PIDs to identify.", "[pid1 pid2 pid3 ...]"); + parser.addPositionalArgument("PIDs", "PIDs to identify.", "[pid1,pid2,pid3 ...]"); parser.process(app); auto PIDs = parser.positionalArguments(); @@ -27,13 +27,14 @@ int main(int argc, char *argv[]) return 0; } - auto slice = PIDs.first().split(' ', Qt::SkipEmptyParts); + auto slice = PIDs.first().split(',', Qt::SkipEmptyParts); QList PIDList{}; std::transform(slice.cbegin(), slice.cend(), std::back_inserter(PIDList), [](const QString &pid) { bool ok{true}; auto result = pid.toInt(&ok); if (!ok) { - qFatal() << "failed to convert:" << pid; + qCritical() << "syntax error:" << pid; + std::terminate(); } return static_cast(result); @@ -43,7 +44,8 @@ int main(int argc, char *argv[]) std::for_each(PIDList.cbegin(), PIDList.cend(), [&con](pid_t pid) { auto pidfd = pidfd_open(pid, 0); if (pidfd == -1) { - qFatal() << "failed to open pidfd:" << std::strerror(errno); + qCritical() << "failed to open pidfd:" << std::strerror(errno) << "skip."; + return; } auto msg = QDBusMessage::createMethodCall( diff --git a/src/dbus/applicationmanager1service.cpp b/src/dbus/applicationmanager1service.cpp index 98badc7..add1be9 100644 --- a/src/dbus/applicationmanager1service.cpp +++ b/src/dbus/applicationmanager1service.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include ApplicationManager1Service::~ApplicationManager1Service() = default; @@ -24,6 +25,8 @@ ApplicationManager1Service::ApplicationManager1Service(std::unique_ptr #include #include +#include +#include #include "applicationmanagerstorage.h" #include "dbus/jobmanager1service.h" #include "dbus/mimemanager1service.h" @@ -71,6 +73,8 @@ private: QScopedPointer m_jobManager{nullptr}; QStringList m_hookElements; QStringList m_systemdPathEnv; + QFileSystemWatcher m_watcher; + QTimer m_reloadTimer; QMap> m_applicationList; void scanMimeInfos() noexcept;