diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-08-03 18:27:00 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-08-03 18:28:17 +0200 |
commit | c9720a761e88e83265b4d75808533cdfbc66075b (patch) | |
tree | 909199889dd3668f4699c07c70410fc182a3d4a7 | |
parent | 4c20d9f2b0223874e2b5ac1235d5f33fdd02589b (diff) | |
download | busybox-c9720a761e88e83265b4d75808533cdfbc66075b.tar.gz |
timeout: fix arguments to match coreutils
Was: timeout [-t SECS] [-s SIG] PROG ARGS
Is: timeout [-s SIG] SECS PROG ARGS
function old new delta
timeout_main 312 319 +7
packed_usage 32882 32858 -24
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 7/-24) Total: -17 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | coreutils/timeout.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/coreutils/timeout.c b/coreutils/timeout.c index 663303c2d..e42aba85c 100644 --- a/coreutils/timeout.c +++ b/coreutils/timeout.c @@ -39,10 +39,10 @@ //kbuild:lib-$(CONFIG_TIMEOUT) += timeout.o //usage:#define timeout_trivial_usage -//usage: "[-t SECS] [-s SIG] PROG ARGS" +//usage: "[-s SIG] SECS PROG ARGS" //usage:#define timeout_full_usage "\n\n" //usage: "Runs PROG. Sends SIG to it if it is not gone in SECS seconds.\n" -//usage: "Defaults: SECS: 10, SIG: TERM." +//usage: "Default SIG: TERM." #include "libbb.h" @@ -52,8 +52,7 @@ int timeout_main(int argc UNUSED_PARAM, char **argv) int signo; int status; int parent = 0; - unsigned timeout; - const char *timeout_s = "10"; + int timeout; pid_t pid; #if !BB_MMU char *sv1, *sv2; @@ -64,12 +63,18 @@ int timeout_main(int argc UNUSED_PARAM, char **argv) /* -t SECONDS; -p PARENT_PID */ /* '+': stop at first non-option */ - getopt32(argv, "+s:t:" USE_FOR_NOMMU("p:+"), &opt_s, &timeout_s, &parent); + getopt32(argv, "+s:" USE_FOR_NOMMU("p:+"), &opt_s, &parent); /*argv += optind; - no, wait for bb_daemonize_or_rexec! */ + signo = get_signum(opt_s); if (signo < 0) bb_error_msg_and_die("unknown signal '%s'", opt_s); - timeout = parse_duration_str((char*)timeout_s); + + if (!argv[optind]) + bb_show_usage(); + timeout = parse_duration_str(argv[optind++]); + if (!argv[optind]) /* no PROG? */ + bb_show_usage(); /* We want to create a grandchild which will watch * and kill the grandparent. Other methods: @@ -77,12 +82,10 @@ int timeout_main(int argc UNUSED_PARAM, char **argv) * (example: "tcpsvd 0.0.0.0 1234 timeout service_prog" - * it's better if service_prog is a child of tcpsvd!), * making child watch parent results in programs having - * unexpected children. */ + * unexpected children. */ if (parent) /* we were re-execed, already grandchild */ goto grandchild; - if (!argv[optind]) /* no PROG? */ - bb_show_usage(); #if !BB_MMU sv1 = argv[optind]; |