summaryrefslogtreecommitdiffstats
path: root/signal.c
diff options
context:
space:
mode:
authorMichel Stam <m.stam@fugro.nl>2014-10-13 16:14:36 +0200
committerJohn Crispin <blogic@openwrt.org>2014-10-12 13:24:11 +0200
commit3ff99010e61a0299257ffc91467a16d278a7e774 (patch)
tree6c3cc68e3faa034a25bee91e320dabb47c014b41 /signal.c
parent8b27adcf7516fa89ced66c840cfb085f2b6067af (diff)
downloadunitd-3ff99010e61a0299257ffc91467a16d278a7e774.tar
unitd-3ff99010e61a0299257ffc91467a16d278a7e774.zip
Fix ctrl+alt+del support
The previous patch did not catch SIGINT, which is used by the kernel to indicate to the init process that the system should reboot. Signed-off-by: Michel Stam <m.stam@fugro.nl>
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/signal.c b/signal.c
index 12eedc8..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);