X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=signal.c;h=16824f7251b5c01344c4f1dd939ed0daef9ac022;hp=74cabcbaf13c829f8be119a700a831860bb7796f;hb=f355e233714e6ff38a38ccfe74f2f42d65a519c8;hpb=916f95cb58604038695347ee41a430d8ca1f0556 diff --git a/signal.c b/signal.c index 74cabcb..16824f7 100644 --- a/signal.c +++ b/signal.c @@ -36,6 +36,7 @@ static void signal_shutdown(int signal, siginfo_t *siginfo, void *data) char *msg = NULL; switch(signal) { + case SIGINT: case SIGTERM: event = RB_AUTOBOOT; msg = "reboot"; @@ -84,6 +85,7 @@ void procd_signal(void) 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); @@ -91,4 +93,5 @@ void procd_signal(void) sigaction(SIGHUP, &sa_dummy, NULL); sigaction(SIGKILL, &sa_dummy, NULL); sigaction(SIGSTOP, &sa_dummy, NULL); + reboot(RB_DISABLE_CAD); }