This matches killall5 from sysvinit. From its manpage:
EXIT STATUS
The program return zero if it killed processes. It return 2 if
no process were killed, and 1 if it was unable to find any
processes (/proc/ is missing).
For this to work kernel processes need to be filtered out, this patch
does that as well
diff -ur busybox.orig/procps/kill.c busybox/procps/kill.c
--- busybox.orig/procps/kill.c 2012-07-18 17:32:32.000000000 +0200
+++ busybox/procps/kill.c 2012-08-12 15:11:35.792678564 +0200
@@ -158,7 +158,7 @@
if (killall5) {
pid_t sid;
procps_status_t* p = NULL;
- int ret = 0;
+ int ret = 2;
/* Find out our session id */
sid = getsid(pid);
@@ -172,6 +172,7 @@
if (p->sid == (unsigned)sid
|| p->pid == (unsigned)pid
|| p->pid == 1
+ || p->sid == 0
) {
continue;
}
@@ -200,6 +201,7 @@
goto dont_kill;
}
kill(p->pid, signo);
+ ret = 0;
dont_kill: ;
}
resume:
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox