NAME

timeout - Start COMMAND, and kill it if still running after DURATION.

SYNOPSIS

timeout [-f|--foreground] [-k|--kill-after] [-p|--preserve-status] [-s|--signal] [-v|--verbose] [-h|--help] [-V|--version] <duration> <command>

DESCRIPTION

Start COMMAND, and kill it if still running after DURATION.

OPTIONS

-f, --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

also send a KILL signal if COMMAND is still running this long after the initial signal was sent

-p, --preserve-status

exit with the same status as COMMAND, even when the command times out

-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

-h, --help

Print help

-V, --version

Print version

<duration>

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

<command>

a command to execute with optional arguments

EXTRA

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

VERSION

v(uutils coreutils) 0.10.0

EXAMPLES

Run `sleep 10` and terminate it after 3 seconds:

timeout 3s sleep 10

Send a signal to the command after the time limit expires (`TERM` by default, `kill -l` to list all signals):

timeout [-s|--signal] INT|HUP|KILL|... 5s sleep 10

Send verbose output to `stderr` showing signal sent upon timeout:

timeout [-v|--verbose] 0.5s|1m|1h|1d|... command

Preserve the exit status of the command regardless of timing out:

timeout [-p|--preserve-status] 1s|1m|1h|1d|... command

Send a forceful `KILL` signal after certain duration if the command ignores initial signal upon timeout:

timeout [-k|--kill-after] 5m 30s command

The examples are provided by the tldr-pages project <https://tldr.sh> under the CC BY 4.0 License. Please note that, as uutils is a work in progress, some examples might fail.