TIMEOUT(1)

NAME
timeout - run a command with a time limit

SYNOPSIS
timeout [-fp] [-k time] [-s signal] duration command [arg ...]

DESCRIPTION
The timeout utility executes command and kills it if it is still running after the specified duration. If duration is 0, the timeout is disabled.

The options are as follows:

-f, --foreground
    Do not propagate the timeout signal to children processes.

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

-p, --preserve-status
    Always exit with the same status as command, even if the timeout was reached.

-s signal, --signal=signal
    A non-negative decimal number or symbolic signal name specifying the signal to send on timeout, instead of the default SIGTERM.

DURATION FORMAT
duration and time may contain a decimal fraction. The value defaults to seconds unless a unit suffix is given.

The supported unit suffixes are:

s   seconds
m   minutes
h   hours
d   days

EXIT STATUS
The timeout utility may return one of the following statuses:

124 The time limit expired and the -p flag was not set.
126 The command was found but could not be executed.
127 The command was not found.

Otherwise, timeout returns the exit status of the command.

SEE ALSO
kill(1), signal(3)

STANDARDS
The timeout utility is compliant with the p1003.1-2024 specification.

HISTORY
The timeout utility first appeared in GNU Coreutils 7.0 and has been available since OpenBSD 7.0.