diff --git a/src/profanity.c b/src/profanity.c index fd869b06e..039c764ae 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -195,6 +195,13 @@ _connect_default(const char* const account) } } +static void +sigterm_handler(int sig) +{ + log_info("Received signal %d, exiting", sig); + force_quit = TRUE; +} + static void _init(char* log_level, char* config_file, char* log_file, char* theme_name) { @@ -204,6 +211,8 @@ _init(char* log_level, char* config_file, char* log_file, char* theme_name) signal(SIGINT, SIG_IGN); signal(SIGTSTP, SIG_IGN); signal(SIGWINCH, ui_sigwinch_handler); + signal(SIGTERM, sigterm_handler); + signal(SIGHUP, sigterm_handler); if (pthread_mutex_init(&lock, NULL) != 0) { log_error("Mutex init failed"); exit(1);