diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-10-31 00:30:48 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-10-31 00:30:48 +0000 |
commit | b9b344aa44ba6221edc8f09398325399049bf388 (patch) | |
tree | 0fb8f61e9ec11b39c0fc8e9d9358ca33d5b9c1b4 | |
parent | f34cfff2f032ff8e475c97f69ea49a24f94b64f5 (diff) | |
download | busybox-b9b344aa44ba6221edc8f09398325399049bf388.tar.gz |
kill[all[5]]: accept -s SIG too. kill_main: +29 bytes
by Steve Bennett (steveb AT workware.net.au)
-rw-r--r-- | include/usage.h | 13 | ||||
-rw-r--r-- | procps/kill.c | 10 |
2 files changed, 15 insertions, 8 deletions
diff --git a/include/usage.h b/include/usage.h index 9e18ff640..ac62fbf6d 100644 --- a/include/usage.h +++ b/include/usage.h @@ -2041,11 +2041,12 @@ "\n -u Unicode (utf-8)" \ #define kill_trivial_usage \ - "[-l] [-signal] process-id..." + "[-l] [-SIG] PID..." #define kill_full_usage "\n\n" \ - "Send a signal (default is TERM) to the specified process(es)\n" \ + "Send a signal (default is TERM) to given PIDs\n" \ "\nOptions:" \ "\n -l List all signal names and numbers" \ +/* "\n -s SIG Yet another way of specifying SIG" */ \ #define kill_example_usage \ "$ ps | grep apache\n" \ @@ -2058,22 +2059,24 @@ "$ kill 252\n" #define killall_trivial_usage \ - "[-l] [-q] [-signal] process-name..." + "[-l] [-q] [-SIG] process-name..." #define killall_full_usage "\n\n" \ - "Send a signal (default is TERM) to the specified process(es)\n" \ + "Send a signal (default is TERM) to given processes\n" \ "\nOptions:" \ "\n -l List all signal names and numbers" \ +/* "\n -s SIG Yet another way of specifying SIG" */ \ "\n -q Do not complain if no processes were killed" \ #define killall_example_usage \ "$ killall apache\n" #define killall5_trivial_usage \ - "[-l] [-signal]" + "[-l] [-SIG]" #define killall5_full_usage "\n\n" \ "Send a signal (default is TERM) to all processes outside current session\n" \ "\nOptions:" \ "\n -l List all signal names and numbers" \ +/* "\n -s SIG Yet another way of specifying SIG" */ \ #define klogd_trivial_usage \ "[-c N] [-n]" diff --git a/procps/kill.c b/procps/kill.c index ed659afdc..140550018 100644 --- a/procps/kill.c +++ b/procps/kill.c @@ -96,10 +96,14 @@ int kill_main(int argc, char **argv) if (arg[0] != '-') goto do_it_now; } - /* -SIG */ - signo = get_signum(&arg[1]); + arg++; /* skip '-' */ + if (argc > 1 && arg[0] == 's' && arg[1] == '\0') { /* -s SIG? */ + argc--; + arg = *++argv; + } /* else it must be -SIG */ + signo = get_signum(arg); if (signo < 0) { /* || signo > MAX_SIGNUM ? */ - bb_error_msg("bad signal name '%s'", &arg[1]); + bb_error_msg("bad signal name '%s'", arg); return EXIT_FAILURE; } arg = *++argv; |