X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fmain.cpp;h=86d874b520e80e3809dabaa5ef73cfff517003cb;hp=fea9d2ccb62d8dbc3d5958061903dff939bb817e;hb=9693b5238b76e6348413d68fa8c6ffc8c64fc12f;hpb=47b574c28983254b6679191f76ddb36fe7da7632;ds=sidebyside diff --git a/src/common/main.cpp b/src/common/main.cpp index fea9d2cc..86d874b5 100644 --- a/src/common/main.cpp +++ b/src/common/main.cpp @@ -19,6 +19,7 @@ ***************************************************************************/ #include "settings.h" +#include #if defined BUILD_CORE #include @@ -45,7 +46,19 @@ #error "Something is wrong - you need to #define a build mode!" #endif +#include + +//! Signal handler for graceful shutdown. +void handle_signal(int sig) { + qWarning(QString("Caught signal %1 - exiting.").arg(sig).toAscii()); + QCoreApplication::quit(); +} + int main(int argc, char **argv) { + // We catch SIGTERM and SIGINT (caused by Ctrl+C) to graceful shutdown Quassel. + signal(SIGTERM, handle_signal); + signal(SIGINT, handle_signal); + qRegisterMetaType("Message"); qRegisterMetaType("BufferId"); qRegisterMetaTypeStreamOperators("Message");