From 76b2240e1587129d4baefaffb738332440e20290 Mon Sep 17 00:00:00 2001 From: sin Date: Fri, 7 Feb 2014 16:18:02 +0000 Subject: Poweroff on SIGUSR1 --- sinit.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sinit.c b/sinit.c index eff6533..35579d7 100644 --- a/sinit.c +++ b/sinit.c @@ -25,13 +25,15 @@ typedef struct { void (*func)(void); } Sigmap; +static void sigpoweroff(void); static void sigreap(void); static void sigreboot(void); static void spawn(const Arg *); static Sigmap dispatchsig[] = { - { SIGCHLD, sigreap }, - { SIGINT, sigreboot }, + { SIGUSR1, sigpoweroff }, + { SIGCHLD, sigreap }, + { SIGINT, sigreboot }, }; static int sigfd = -1; @@ -84,6 +86,12 @@ main(void) return EXIT_SUCCESS; } +static void +sigpoweroff(void) +{ + spawn(&(Arg){ .v = rcpoweroffcmd }); +} + static void sigreap(void) { -- cgit v1.2.3-54-g00ecf