From 02317993c88509997c056b66a06214c007789e0e Mon Sep 17 00:00:00 2001 From: black-desk Date: Mon, 28 Aug 2023 15:56:43 +0800 Subject: [PATCH] fix: call "Subscribe" before connect to systemd systemd will only send UnitNew/UnitRemoved after Subscribe called. --- src/systemdsignaldispatcher.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/systemdsignaldispatcher.h b/src/systemdsignaldispatcher.h index d1f950b..6a7cfb9 100644 --- a/src/systemdsignaldispatcher.h +++ b/src/systemdsignaldispatcher.h @@ -6,6 +6,7 @@ #define SYSTEMDSIGNALDISPATCHER_H #include "global.h" +#include class SystemdSignalDispatcher : public QObject { @@ -29,6 +30,11 @@ private: explicit SystemdSignalDispatcher(QObject *parent = nullptr) : QObject(parent) { + auto &con = ApplicationManager1DBus::instance().globalDestBus(); + auto ret = con.call(QDBusMessage::createMethodCall(SystemdService, SystemdObjectPath, SystemdInterfaceName, "Subscribe")); + if (ret.type() == QDBusMessage::ErrorMessage) { + qFatal("%s", ret.errorMessage().toLocal8Bit().data()); + } if (!connectToSignals()) { std::terminate(); }