summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Stam <m.stam@fugro.nl>2014-10-02 13:56:20 +0200
committerJohn Crispin <blogic@openwrt.org>2014-10-02 19:18:52 +0200
commit98975d54d405c45edf7bab2205d6ffb75ed90438 (patch)
tree5f2511e7d08da7ea4205238ca56d03647507619d
parent396a82c551ab02871ec0e6f399941c9379258bdc (diff)
downloadunitd-98975d54d405c45edf7bab2205d6ffb75ed90438.tar
unitd-98975d54d405c45edf7bab2205d6ffb75ed90438.zip
Kill processes on shutdown
Procd as it currently is does not kill the running processes during shutdown. As this might cause undesired behaviour, this should be implemented. Implementation was taken from busybox 1.19.4 Signed-off-by: Michel Stam <m.stam@fugro.nl>
-rw-r--r--state.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/state.c b/state.c
index bba5966..b941634 100644
--- a/state.c
+++ b/state.c
@@ -15,6 +15,8 @@
#include <sys/reboot.h>
#include <stdlib.h>
#include <unistd.h>
+#include <sys/types.h>
+#include <signal.h>
#include "procd.h"
#include "syslog.h"
@@ -75,6 +77,14 @@ static void state_enter(void)
break;
case STATE_HALT:
+ LOG("- SIGTERM processes -\n");
+ kill(-1, SIGTERM);
+ sync();
+ sleep(1);
+ LOG("- SIGKILL processes -\n");
+ kill(-1, SIGKILL);
+ sync();
+ sleep(1);
LOG("- reboot -\n");
reboot(reboot_event);
break;