summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog1
-rw-r--r--kill.c6
-rw-r--r--procps/kill.c6
3 files changed, 11 insertions, 2 deletions
diff --git a/Changelog b/Changelog
index 7ac97dc..da229a9 100644
--- a/Changelog
+++ b/Changelog
@@ -59,6 +59,7 @@
with traditional implementations -- Pavel Roskin.
* "mount" now reports errors from nfsmount() and assumes NFS mount
if ':' is present in the device name - Pavel Roskin
+ * Fixed exit status for killall - Pavel Roskin
* More doc updates
diff --git a/kill.c b/kill.c
index 1f1bee4..75277d9 100644
--- a/kill.c
+++ b/kill.c
@@ -228,14 +228,17 @@ extern int kill_main(int argc, char **argv)
}
#ifdef BB_KILLALL
else {
+ int all_found = TRUE;
pid_t myPid=getpid();
/* Looks like they want to do a killall. Do that */
while (--argc >= 0) {
pid_t* pidList;
pidList = findPidByName( *argv);
- if (!pidList)
+ if (!pidList) {
+ all_found = FALSE;
errorMsg( "%s: no process killed\n", *argv);
+ }
for(; pidList && *pidList!=0; pidList++) {
if (*pidList==myPid)
@@ -248,6 +251,7 @@ extern int kill_main(int argc, char **argv)
* upon exit, so we can save a byte or two */
argv++;
}
+ exit (all_found);
}
#endif
diff --git a/procps/kill.c b/procps/kill.c
index 1f1bee4..75277d9 100644
--- a/procps/kill.c
+++ b/procps/kill.c
@@ -228,14 +228,17 @@ extern int kill_main(int argc, char **argv)
}
#ifdef BB_KILLALL
else {
+ int all_found = TRUE;
pid_t myPid=getpid();
/* Looks like they want to do a killall. Do that */
while (--argc >= 0) {
pid_t* pidList;
pidList = findPidByName( *argv);
- if (!pidList)
+ if (!pidList) {
+ all_found = FALSE;
errorMsg( "%s: no process killed\n", *argv);
+ }
for(; pidList && *pidList!=0; pidList++) {
if (*pidList==myPid)
@@ -248,6 +251,7 @@ extern int kill_main(int argc, char **argv)
* upon exit, so we can save a byte or two */
argv++;
}
+ exit (all_found);
}
#endif