add sighup catch to daemon

This commit is contained in:
Evgenii Alekseev 2017-03-12 05:15:40 +03:00
parent 8031e60355
commit a2872e7c23
2 changed files with 13 additions and 5 deletions

View File

@ -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();
}

View File

@ -25,10 +25,14 @@
#include "version.h"
extern "C" {
#include <signal.h>
#include <unistd.h>
}
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();
}