TIMEOUT(1) | General Commands Manual | TIMEOUT(1)

# NAME

`timeout` — run a command with a time limit

# SYNOPSIS

`timeout` | [`--signal` sig | `-s` sig] [`--preserve-status` | `-p`] [`--kill-after` time | `-k` time] [`--foreground` | `-f`] ⟨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.

`-p`, `--preserve-status`
  Always exits with the same status as command even if it times out.
`-f`, `--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.

December 13, 2022 | NetBSD 11.0