TIMEOUT(1) | General Commands Manual | 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 specification.

# HISTORY

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

June 16, 2024 | Debian