int event = 0;
char *msg = NULL;
+#ifndef DISABLE_INIT
switch(signal) {
+ case SIGINT:
case SIGTERM:
event = RB_AUTOBOOT;
msg = "reboot";
break;
case SIGUSR1:
case SIGUSR2:
+ case SIGPWR:
event = RB_POWER_OFF;
msg = "poweroff";
break;
}
+#endif
DEBUG(1, "Triggering %s\n", msg);
if (event)
if (getpid() != 1)
return;
sigaction(SIGTERM, &sa_shutdown, NULL);
+ sigaction(SIGINT, &sa_shutdown, NULL);
sigaction(SIGUSR1, &sa_shutdown, NULL);
sigaction(SIGUSR2, &sa_shutdown, NULL);
+ sigaction(SIGPWR, &sa_shutdown, NULL);
sigaction(SIGSEGV, &sa_crash, NULL);
sigaction(SIGBUS, &sa_crash, NULL);
sigaction(SIGHUP, &sa_dummy, NULL);
sigaction(SIGKILL, &sa_dummy, NULL);
sigaction(SIGSTOP, &sa_dummy, NULL);
+#ifndef DISABLE_INIT
reboot(RB_DISABLE_CAD);
+#endif
}