diff options
| author | MattV <qt-info@nokia.com> | 2009-10-20 12:31:10 +1000 |
|---|---|---|
| committer | MattV <qt-info@nokia.com> | 2009-10-20 12:31:10 +1000 |
| commit | 80514a5404394d4f50fb1e36cbfff2c2d5890ca6 (patch) | |
| tree | 62d4100a8148a5a0cb713ed4ffe207601d0a000a | |
| parent | c73d15e2d324e26e5b93cd516d91d77f77da1900 (diff) | |
Allow optional shutdown signal handling.
| -rw-r--r-- | src/tools/messageserver/main.cpp | 19 | ||||
| -rw-r--r-- | src/tools/messageserver/messageserver.pro | 5 |
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 +} + |
