diff --git a/awesome.c b/awesome.c index 3cef91e1..e4945d94 100644 --- a/awesome.c +++ b/awesome.c @@ -396,8 +396,12 @@ main(int argc, char **argv) g_unix_signal_add(SIGTERM, exit_on_signal, NULL); g_unix_signal_add(SIGHUP, restart_on_signal, NULL); - struct sigaction sa = { .sa_handler = signal_fatal, .sa_flags = 0 }; + struct sigaction sa = { .sa_handler = signal_fatal, .sa_flags = SA_RESETHAND }; sigemptyset(&sa.sa_mask); + sigaction(SIGABRT, &sa, 0); + sigaction(SIGBUS, &sa, 0); + sigaction(SIGFPE, &sa, 0); + sigaction(SIGILL, &sa, 0); sigaction(SIGSEGV, &sa, 0); /* We have no clue where the input focus is right now */