kill[all[5]]: accept -s SIG too. kill_main: +29 bytes
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 31 Oct 2008 00:30:48 +0000 (00:30 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 31 Oct 2008 00:30:48 +0000 (00:30 -0000)
 by Steve Bennett (steveb AT workware.net.au)

include/usage.h
procps/kill.c

index 9e18ff6408173476043009ccccde0999ce6b2c06..ac62fbf6da7a740bf7ef790ae2c50cd291b03454 100644 (file)
      "\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" \
        "$ 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]"
index ed659afdca0b1a6f822ab2333e6a1852f3b7d864..140550018a80817b6c7c96388153cf543b17999a 100644 (file)
@@ -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;