timeout - Man Page
run a command with a time limit
Examples (TL;DR)
- Run
sleep 10
and terminate it after 3 seconds:timeout 3s sleep 10
- Send a [s]ignal to the command after the time limit expires (
TERM
by default,kill -l
to list all signals):timeout --signal INT|HUP|KILL|... 5s sleep 10
- Send [v]erbose output to
stderr
showing signal sent upon timeout:timeout --verbose 0.5s|1m|1h|1d|... command
- Preserve the exit status of the command regardless of timing out:
timeout --preserve-status 1s|1m|1h|1d|... command
- Send a forceful
KILL
signal after certain duration if the command ignores initial signal upon timeout:timeout --kill-after=5m 30s command
Synopsis
timeout [OPTION] DURATION COMMAND [ARG]...
timeout [OPTION]
Description
Start COMMAND, and kill it if still running after DURATION.
Mandatory arguments to long options are mandatory for short options too.
--preserve-status
exit with the same status as COMMAND, even when the
command times out
--foreground
when not running timeout directly from a shell prompt,
allow COMMAND to read from the TTY and get TTY signals; in this mode, children of COMMAND will not be timed out
-k, --kill-after=DURATION
also send a KILL signal if COMMAND is still running
this long after the initial signal was sent
-s, --signal=SIGNAL
specify the signal to be sent on timeout;
SIGNAL may be a name like 'HUP' or a number; see 'kill -l' for a list of signals
- -v, ā--verbose
diagnose to stderr any signal sent upon timeout
- --help
display this help and exit
- --version
output version information and exit
DURATION is a floating point number with an optional suffix: 's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days. A duration of 0 disables the associated timeout.
Upon timeout, send the TERM signal to COMMAND, if no other SIGNAL specified. The TERM signal kills any process that does not block or catch that signal. It may be necessary to use the KILL signal, since this signal can't be caught.
Exit status
- 124
if COMMAND times out, and --preserve-status is not specified
- 125
if the timeout command itself fails
- 126
if COMMAND is found but cannot be invoked
- 127
if COMMAND cannot be found
- 137
if COMMAND (or timeout itself) is sent the KILL (9) signal (128+9)
- -
the exit status of COMMAND otherwise
Bugs
Some platforms don't currently support timeouts beyond the year 2038.
Author
Written by Padraig Brady.
Reporting Bugs
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Copyright
Copyright Ā© 2024 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
See Also
Full documentation <https://www.gnu.org/software/coreutils/timeout>
or available locally via: info '(coreutils) timeout invocation'
Referenced By
debrepro(1), git-annex-common-options(1), qemu-sanity-check(1), sdorfehs(1), time(7).