summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/tools/messageserver/main.cpp19
-rw-r--r--src/tools/messageserver/messageserver.pro5
2 files changed, 24 insertions, 0 deletions
diff --git a/src/tools/messageserver/main.cpp b/src/tools/messageserver/main.cpp
index c80a652d..27eb7f51 100644
--- a/src/tools/messageserver/main.cpp
+++ b/src/tools/messageserver/main.cpp
@@ -44,6 +44,20 @@
#include <QDebug>
#include <qmailnamespace.h>
+#if defined(HANDLE_SHUTDOWN_SIGNALS) && defined(Q_OS_UNIX)
+#define SHUTDOWN_SIGNAL_HANDLING
+#endif
+
+#ifdef SHUTDOWN_SIGNAL_HANDLING
+#include <signal.h>
+
+static void shutdown(int n)
+{
+ qWarning() << "Received signal" << n << "- terminating.";
+ QCoreApplication::exit();
+}
+#endif
+
int main(int argc, char** argv)
{
@@ -54,6 +68,11 @@ int main(int argc, char** argv)
MessageServer server;
+#ifdef SHUTDOWN_SIGNAL_HANDLING
+ signal(SIGINT, shutdown);
+ signal(SIGTERM, shutdown);
+#endif
+
int exitCode = app.exec();
return exitCode;
diff --git a/src/tools/messageserver/messageserver.pro b/src/tools/messageserver/messageserver.pro
index ac1748ff..a5a7e181 100644
--- a/src/tools/messageserver/messageserver.pro
+++ b/src/tools/messageserver/messageserver.pro
@@ -41,3 +41,8 @@ TRANSLATIONS += messageserver-ar.ts \
messageserver-zh_CN.ts \
messageserver-zh_TW.ts
+unix {
+ # Uncomment this to shutdown cleanly on termination signal
+ #DEFINES += HANDLE_SHUTDOWN_SIGNALS
+}
+