#include "procd.h"
-static int preinit;
-
static void do_reboot(void)
{
LOG("reboot\n");
fflush(stderr);
sync();
+ sleep(2);
reboot(RB_AUTOBOOT);
while (1)
;
int event = 0;
char *msg = NULL;
- if (preinit)
- do_reboot();
-
switch(signal) {
+ case SIGINT:
case SIGTERM:
event = RB_AUTOBOOT;
msg = "reboot";
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(SIGSEGV, &sa_crash, NULL);
sigaction(SIGHUP, &sa_dummy, NULL);
sigaction(SIGKILL, &sa_dummy, NULL);
sigaction(SIGSTOP, &sa_dummy, NULL);
-}
-
-void procd_signal_preinit(void)
-{
- preinit = 1;
- sigaction(SIGTERM, &sa_shutdown, NULL);
- sigaction(SIGUSR1, &sa_shutdown, NULL);
- sigaction(SIGUSR2, &sa_shutdown, NULL);
+ reboot(RB_DISABLE_CAD);
}