# phpman > man > timeout(1)

> **TLDR:** Run a command with a time limit.
>
- Run `sleep 10` and terminate it after 3 seconds:
  `timeout 3s sleep 10`
- Send a signal to the command after the time limit expires (`TERM` by default, `kill -l` to list all signals):
  `timeout {{-s|--signal}} {{INT|HUP|KILL|...}} {{5s}} {{sleep 10}}`
- Send verbose output to `stderr` showing signal sent upon timeout:
  `timeout {{-v|--verbose}} {{0.5s|1m|1h|1d|...}} {{command}}`
- Preserve the exit status of the command regardless of timing out:
  `timeout {{-p|--preserve-status}} {{1s|1m|1h|1d|...}} {{command}}`
- Send a forceful `KILL` signal after certain duration if the command ignores initial signal upon timeout:
  `timeout {{-k|--kill-after}} {{5m}} {{30s}} {{command}}`

*Source: tldr-pages*

---

[TIMEOUT(1)](https://www.chedong.com/phpMan.php/man/TIMEOUT/1/markdown)                                  User Commands                                 [TIMEOUT(1)](https://www.chedong.com/phpMan.php/man/TIMEOUT/1/markdown)



## NAME
       timeout - run a command with a time limit

## SYNOPSIS
       **timeout** [_OPTION_] _DURATION_ _COMMAND_ [_ARG_]...
       **timeout** [_OPTION_]

## DESCRIPTION
       Start COMMAND, and kill it if still running after DURATION.

       Mandatory arguments to long options are mandatory for short options too.

### --preserve-status

              exit with the same status as COMMAND, even when the

              command times out

### --foreground

              when not running timeout directly from a shell prompt,

              allow COMMAND to read from the TTY and get TTY signals; in this mode, children of COM‐
              MAND will not be timed out

### -k --kill-after

              also send a KILL signal if COMMAND is still running

              this long after the initial signal was sent

### -s --signal

              specify the signal to be sent on timeout;

              SIGNAL may be a name like 'HUP' or a number; see 'kill **-l**' for a list of signals

### -v --verbose
              diagnose to stderr any signal sent upon timeout

       **--help** display this help and exit

### --version
              output version information and exit

       DURATION is a floating point number with an optional suffix: 's' for seconds  (the  default),
       'm'  for  minutes,  'h'  for  hours or 'd' for days.  A duration of 0 disables the associated
       timeout.

       If the command times out, and **--preserve-status** is not set, then exit with status 124.   Oth‐
       erwise,  exit  with  the  status of COMMAND.  If no signal is specified, send the TERM signal
       upon timeout.  The TERM signal kills any process that does not block or  catch  that  signal.
       It  may be necessary to use the KILL (9) signal, since this signal cannot be caught, in which
       case the exit status is 128+9 rather than 124.

## BUGS
       Some platforms don't currently support timeouts beyond the year 2038.

## AUTHOR
       Written by Padraig Brady.

## REPORTING BUGS
       GNU coreutils online help: <<https://www.gnu.org/software/coreutils/>>
       Report any translation bugs to <<https://translationproject.org/team/>>

## COPYRIGHT
       Copyright © 2020 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3  or  later
       <<https://gnu.org/licenses/gpl.html>>.
       This  is free software: you are free to change and redistribute it.  There is NO WARRANTY, to
       the extent permitted by law.

## SEE ALSO
       [kill(1)](https://www.chedong.com/phpMan.php/man/kill/1/markdown)

       Full documentation <<https://www.gnu.org/software/coreutils/timeout>>
       or available locally via: info '(coreutils) timeout invocation'



GNU coreutils 8.32                          January 2026                                  [TIMEOUT(1)](https://www.chedong.com/phpMan.php/man/TIMEOUT/1/markdown)
