diff options
-rw-r--r-- | Changelog | 1 | ||||
-rw-r--r-- | kill.c | 6 | ||||
-rw-r--r-- | procps/kill.c | 6 |
3 files changed, 11 insertions, 2 deletions
@@ -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 @@ -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 1f1bee48b..75277d962 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 |