}
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) {
if (dir_is_empty("/usr") <= 0)
return;
- log_warning("/usr appears to be on its own filesytem and is not already mounted. This is not a supported setup. "
+ log_warning("/usr appears to be on its own filesystem and is not already mounted. This is not a supported setup. "
"Some things will probably break (sometimes even silently) in mysterious ways. "
"Consult http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken for more information.");
}
static int initialize_join_controllers(void) {
/* By default, mount "cpu" + "cpuacct" together, and "net_cls"
* + "net_prio". We'd like to add "cpuset" to the mix, but
- * "cpuset" does't really work for groups with no initialized
+ * "cpuset" doesn't really work for groups with no initialized
* attributes. */
arg_join_controllers = new(char**, 3);
finish:
pager_close();
+ if (m)
+ arg_shutdown_watchdog = m->shutdown_watchdog;
m = manager_free(m);
for (j = 0; j < ELEMENTSOF(arg_default_rlimit); j++) {