---
name: "timeout"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd"]
url: "https://new.carta.tech/timeout"
---

# timeout(1)

run a command with a time limit

## 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)](/kill/1.md), [signal(3)](/signal/3.md)

## STANDARDS

The **timeout** utility is compliant with the IEEE Std 1003.1-2024 (“POSIX.1”) specification.

## HISTORY

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