timeout — run a command with a time limit

Examples (TL;DR)

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.

If the command times out, and --preserve-status is not set, then exit with status 124.  Otherwise, exit with the status of COMMAND.  If no signal is specified, send the TERM signal upon timeout.  The TERM signal kills any process that does not block or catch that signal.  It may be necessary to use the KILL (9) signal, since this signal cannot be caught, in which case the exit status is 128+9 rather than 124.

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/>

See Also

kill(1)

Full documentation <https://www.gnu.org/software/coreutils/timeout>
or available locally via: info '(coreutils) timeout invocation'

Referenced By

qemu-sanity-check(1), time(7).

October 2019 GNU coreutils 8.31