Scroll to navigation

TIMEOUT(1) General Commands Manual TIMEOUT(1)

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

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
also send a KILL signal if COMMAND is still running this long after the initial signal was sent
exit with the same status as COMMAND, even when the command times out
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
diagnose to stderr any signal sent upon timeout
Print help
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 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

VERSION

v(uutils coreutils) 0.9.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.

2026-06-04