chiark / gitweb /
core: make setting the shutdown watchdog configuration via dbus work
[elogind.git] / src / core / main.c
index e2e1399564afc8c0c01769a82644c33399dfcdd8..5cdd20aef8685fa863812cab1fc82f2455d6d8e0 100644 (file)
@@ -224,12 +224,17 @@ noreturn static void crash(int sig) {
 }
 
 static void install_crash_handler(void) {
-        struct sigaction sa = {
+        static const struct sigaction sa = {
                 .sa_handler = crash,
-                .sa_flags = SA_NODEFER,
+                .sa_flags = SA_NODEFER, /* So that we can raise the signal again from the signal handler */
         };
+        int r;
 
-        sigaction_many(&sa, SIGNALS_CRASH_HANDLER, -1);
+        /* We ignore the return value here, since, we don't mind if we
+         * cannot set up a crash handler */
+        r = sigaction_many(&sa, SIGNALS_CRASH_HANDLER, -1);
+        if (r < 0)
+                log_debug_errno(r, "I had trouble setting up the crash handler, ignoring: %m");
 }
 
 static int console_setup(void) {
@@ -1824,6 +1829,7 @@ int main(int argc, char *argv[]) {
 finish:
         pager_close();
 
+        arg_shutdown_watchdog = m->shutdown_watchdog;
         m = manager_free(m);
 
         for (j = 0; j < ELEMENTSOF(arg_default_rlimit); j++) {