aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Vampl <mobile.leecher@gmail.com>2013-12-16 17:44:58 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2013-12-16 17:44:58 +0100
commit3ac1e0d753ca8e918a3b97020ae09058efffe057 (patch)
treeb96acd47aa9cfc1184f50669ef9722b1f886e30c
parent9f4f60183b2de12ff618a4966378c6b49184b1de (diff)
downloadbusybox-3ac1e0d753ca8e918a3b97020ae09058efffe057.tar.gz
killall5: return 2 if no processes got killed
function old new delta kill_main 943 992 +49 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--procps/kill.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/procps/kill.c b/procps/kill.c
index cd189bcd6..8e4213730 100644
--- a/procps/kill.c
+++ b/procps/kill.c
@@ -158,7 +158,8 @@ int kill_main(int argc, char **argv)
if (killall5) {
pid_t sid;
procps_status_t* p = NULL;
- int ret = 0;
+ /* compat: exitcode 2 is "no one was signaled" */
+ int ret = 2;
/* Find out our session id */
sid = getsid(pid);
@@ -170,6 +171,7 @@ int kill_main(int argc, char **argv)
int i;
if (p->sid == (unsigned)sid
+ || p->sid == 0 /* compat: kernel thread, don't signal it */
|| p->pid == (unsigned)pid
|| p->pid == 1
) {
@@ -200,6 +202,7 @@ int kill_main(int argc, char **argv)
goto dont_kill;
}
kill(p->pid, signo);
+ ret = 0;
dont_kill: ;
}
resume: