kill[all[5]]: accept -s SIG too. kill_main: +29 bytes

by Steve Bennett (steveb AT workware.net.au)
This commit is contained in:
Denis Vlasenko 2008-10-31 00:30:48 +00:00
parent f34cfff2f0
commit b9b344aa44
2 changed files with 15 additions and 8 deletions

View File

@ -2041,11 +2041,12 @@
"\n -u Unicode (utf-8)" \ "\n -u Unicode (utf-8)" \
#define kill_trivial_usage \ #define kill_trivial_usage \
"[-l] [-signal] process-id..." "[-l] [-SIG] PID..."
#define kill_full_usage "\n\n" \ #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:" \ "\nOptions:" \
"\n -l List all signal names and numbers" \ "\n -l List all signal names and numbers" \
/* "\n -s SIG Yet another way of specifying SIG" */ \
#define kill_example_usage \ #define kill_example_usage \
"$ ps | grep apache\n" \ "$ ps | grep apache\n" \
@ -2058,22 +2059,24 @@
"$ kill 252\n" "$ kill 252\n"
#define killall_trivial_usage \ #define killall_trivial_usage \
"[-l] [-q] [-signal] process-name..." "[-l] [-q] [-SIG] process-name..."
#define killall_full_usage "\n\n" \ #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:" \ "\nOptions:" \
"\n -l List all signal names and numbers" \ "\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" \ "\n -q Do not complain if no processes were killed" \
#define killall_example_usage \ #define killall_example_usage \
"$ killall apache\n" "$ killall apache\n"
#define killall5_trivial_usage \ #define killall5_trivial_usage \
"[-l] [-signal]" "[-l] [-SIG]"
#define killall5_full_usage "\n\n" \ #define killall5_full_usage "\n\n" \
"Send a signal (default is TERM) to all processes outside current session\n" \ "Send a signal (default is TERM) to all processes outside current session\n" \
"\nOptions:" \ "\nOptions:" \
"\n -l List all signal names and numbers" \ "\n -l List all signal names and numbers" \
/* "\n -s SIG Yet another way of specifying SIG" */ \
#define klogd_trivial_usage \ #define klogd_trivial_usage \
"[-c N] [-n]" "[-c N] [-n]"

View File

@ -96,10 +96,14 @@ int kill_main(int argc, char **argv)
if (arg[0] != '-') goto do_it_now; if (arg[0] != '-') goto do_it_now;
} }
/* -SIG */ arg++; /* skip '-' */
signo = get_signum(&arg[1]); 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 ? */ 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; return EXIT_FAILURE;
} }
arg = *++argv; arg = *++argv;