From 16b8c2e915fb7972ad5190ae2591b2d71789f477 Mon Sep 17 00:00:00 2001 From: Mikkel Oscar Lyderik Date: Tue, 29 Dec 2015 13:00:35 +0100 Subject: Handle SIGTERM sent to sway This makes sway handle and gracefully shut down everything when receiving a SIGTERM. Fix #416 --- sway/main.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'sway/main.c') diff --git a/sway/main.c b/sway/main.c index 382e7ca2..37681f2d 100644 --- a/sway/main.c +++ b/sway/main.c @@ -26,6 +26,11 @@ void sway_terminate(void) { wlc_terminate(); } +void sig_handler(int signal) { + close_views(&root_container); + sway_terminate(); +} + static void wlc_log_handler(enum wlc_log_type type, const char *str) { if (type == WLC_LOG_ERROR) { sway_log(L_ERROR, "[wlc] %s", str); @@ -176,6 +181,9 @@ int main(int argc, char **argv) { } register_extensions(); + // handle SIGTERM signals + signal(SIGTERM, sig_handler); + #if defined SWAY_GIT_VERSION && defined SWAY_GIT_BRANCH && defined SWAY_VERSION_DATE sway_log(L_INFO, "Starting sway version %s (%s, branch \"%s\")\n", SWAY_GIT_VERSION, SWAY_VERSION_DATE, SWAY_GIT_BRANCH); #endif -- cgit v1.2.3