diff options
author | Robert Griebl <robert.griebl@qt.io> | 2020-01-24 17:25:39 +0100 |
---|---|---|
committer | Robert Griebl <robert.griebl@qt.io> | 2020-01-24 17:53:40 +0100 |
commit | 3791a22b27906cc461bdf294782d98a11f4bca12 (patch) | |
tree | 90371273b8f05364a0d577eb6e514e17362b7690 | |
parent | df78fb1c31b2fcd1437c8f98de53c28514f83e54 (diff) |
Handle SIGTERM gracefully
Change-Id: I5c08b3e266a57fe113d59ad0781a33250ab6f327
Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
-rw-r--r-- | src/main-lib/main.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/main-lib/main.cpp b/src/main-lib/main.cpp index 9c493a7b..dd325502 100644 --- a/src/main-lib/main.cpp +++ b/src/main-lib/main.cpp @@ -161,10 +161,12 @@ Main::Main(int &argc, char **argv) // this might be needed later on by the native runtime to find a suitable qml runtime launcher setProperty("_am_build_dir", qSL(AM_BUILD_DIR)); - UnixSignalHandler::instance()->install(UnixSignalHandler::ForwardedToEventLoopHandler, SIGINT, - [](int /*sig*/) { - UnixSignalHandler::instance()->resetToDefault(SIGINT); - fputs("\n*** received SIGINT / Ctrl+C ... exiting ***\n\n", stderr); + UnixSignalHandler::instance()->install(UnixSignalHandler::ForwardedToEventLoopHandler, + { SIGINT, SIGTERM }, + [](int sig) { + UnixSignalHandler::instance()->resetToDefault(sig); + if (sig == SIGINT) + fputs("\n*** received SIGINT / Ctrl+C ... exiting ***\n\n", stderr); static_cast<Main *>(QCoreApplication::instance())->shutDown(); }); StartupTimer::instance()->checkpoint("after application constructor"); |