aboutsummaryrefslogtreecommitdiff
path: root/kill.c
diff options
context:
space:
mode:
Diffstat (limited to 'kill.c')
-rw-r--r--kill.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/kill.c b/kill.c
index 260f4a074..c6dc79f65 100644
--- a/kill.c
+++ b/kill.c
@@ -224,12 +224,18 @@ extern int kill_main(int argc, char **argv)
224 else { 224 else {
225 /* Looks like they want to do a killall. Do that */ 225 /* Looks like they want to do a killall. Do that */
226 while (--argc >= 0) { 226 while (--argc >= 0) {
227 int pid; 227 pid_t* pidList;
228 228
229 while((pid = findPidByName( *argv))) { 229 pidList = findPidByName( *argv);
230 if (kill(pid, sig) != 0) 230 for(; pidList && pidList!=0; pidList++) {
231 fatalError( "Could not kill pid '%d': %s\n", pid, strerror(errno)); 231 if (kill(*pidList, sig) != 0)
232 fatalError( "Could not kill pid '%d': %s\n", *pidList, strerror(errno));
233 else
234 errorMsg( "killed pid '%d'\n", *pidList);
232 } 235 }
236 /* Note that we don't bother to free the memory
237 * allocated in findPidByName(). It will be freed
238 * upon exit, so we can save a byte or two */
233 argv++; 239 argv++;
234 } 240 }
235 } 241 }