From a2872e7c23be404f5473e1c21016dc27ed26f8ff Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Sun, 12 Mar 2017 05:15:40 +0300 Subject: [PATCH] add sighup catch to daemon --- sources/queued-daemon/src/QueuedApplication.cpp | 7 +++---- sources/queued-daemon/src/main.cpp | 11 ++++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/sources/queued-daemon/src/QueuedApplication.cpp b/sources/queued-daemon/src/QueuedApplication.cpp index b01c27c..c3076af 100644 --- a/sources/queued-daemon/src/QueuedApplication.cpp +++ b/sources/queued-daemon/src/QueuedApplication.cpp @@ -34,6 +34,7 @@ QueuedApplication::QueuedApplication(QObject *parent, const QVariantHash &args) qCDebug(LOG_APP) << metadata; init(); + initDBus(); } @@ -41,15 +42,14 @@ QueuedApplication::~QueuedApplication() { qCDebug(LOG_APP) << __PRETTY_FUNCTION__; + QDBusConnection::sessionBus().unregisterObject( + QueuedConfig::DBUS_APPLICATION_PATH); deinit(); } void QueuedApplication::deinit() { - QDBusConnection::sessionBus().unregisterObject( - QueuedConfig::DBUS_APPLICATION_PATH); - if (m_core) delete m_core; } @@ -60,7 +60,6 @@ void QueuedApplication::init() deinit(); initCore(); - initDBus(); } diff --git a/sources/queued-daemon/src/main.cpp b/sources/queued-daemon/src/main.cpp index f77e135..16e37af 100644 --- a/sources/queued-daemon/src/main.cpp +++ b/sources/queued-daemon/src/main.cpp @@ -25,10 +25,14 @@ #include "version.h" extern "C" { +#include #include } +QueuedApplication *instance = nullptr; + + bool existingSessionOperation(const QString &operation) { QVariantList arguments = QueuedCoreAdaptor::sendRequest( @@ -108,6 +112,11 @@ int main(int argc, char *argv[]) QVariantHash arguments = {{"config", parser.value(configOption)}}; // start application - QueuedApplication instance(nullptr, arguments); + instance = new QueuedApplication(nullptr, arguments); + // catch SIGHUP + signal(SIGHUP, [](int sig) ->void { + qCInfo(LOG_APP) << "Received SIGHUP signal, reinit components"; + instance->init(); + }); return app.exec(); }