TIMEOUT(1)

NAME
timeout - run a command with a time limit

SYNOPSIS
timeout [- -signal sig | -s sig] [- -preserve-status] [- -kill-after time | -k time] [- -foreground] <duration> <command> <args ...>

DESCRIPTION
timeout starts the command with its args. If command is still running after duration, it is killed. By default, SIGTERM is sent.

- -preserve-status
    Always exits with the same status as command even if it times out.

- -foreground
    Do not propagate timeout to the command children.

-s sig, - -signal sig
    Specify the signal to send on timeout. By default, SIGTERM is sent.

-k time, - -kill-after time
    Send a second kill signal if command is still running after time after the first signal was sent.

DURATION FORMAT
duration and time can be integer or decimal numbers. Values without unit symbols are interpreted as seconds.

Supported unit symbols are:
s   seconds
m   minutes
h   hours
d   days

EXIT STATUS
If the timeout was not reached, the exit status of command is returned.

If the timeout was reached and - -preserve-status is set, the exit status of command is returned. If - -preserve-status is not set, an exit status of 124 is returned.

If command exits after receiving a signal, the exit status returned is the signal number plus 128.

SEE ALSO
kill(1), signal(3)

HISTORY
A timeout utility appeared in a development branch of FreeBSD 11 and was imported into NetBSD 7. The FreeBSD work is compatible with GNU timeout by Padraig Brady, from GNU Coreutils 8.21. The timeout utility first appeared in GNU Coreutils 7.0.