TIMEOUT(1)

πŸ“¦ version 0.12.0, in arch rolling

✨ TIMEOUT(1) β€” or, how to give your command a bedtime πŸ’…

okay so bestie, listen β€” this is timeout from the uutils coreutils manual, and honestly? she's the friend who tells you "you have five more minutes" and actually means it. No cap. 🫢


🌸 NAME 🌸

timeout β€” Start COMMAND, and kill it if still running after DURATION.

Literally that's the whole vibe. You give a command a time limit, and if it's still out there past curfew, it gets yeeted. πŸ’€


πŸŽ€ SYNOPSIS πŸŽ€

timeout [OPTION] DURATION COMMAND...

Options first, then how long you're willing to wait, then the actual command. In that order, bestie. Order matters. πŸ”₯


πŸ’– DESCRIPTION πŸ’–

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

That's it. That's the energy. One job, doing it iconically. ✨


🌈 OPTIONS 🌈

  • -f, --foreground β€” for when you're not running timeout straight from a shell prompt: this lets COMMAND read from the TTY and catch TTY signals. Real talk though β€” in this mode, children of COMMAND do not get timed out. So like, the vibes are permissive. πŸ™ˆ
  • -k, --kill-after β€” if COMMAND is still hanging around this long after the initial signal was sent, send a KILL signal too. It's the "I wasn't asking" follow-up. πŸ’€
  • -p, --preserve-status β€” exit with the same status as COMMAND, even when the command times out. So you can be like "whatever she said, I said." πŸ‘‘
  • -s, --signal SIGNAL β€” pick which signal gets sent on timeout. SIGNAL can be a name like 'HUP' or a number; run kill -l for the full menu of signals. Choose your fighter. ⭐
  • -v, --verbose β€” diagnose to stderr any signal sent upon timeout. She's narrating her own drama, love that for her. πŸ¦‹
  • -h, --help β€” Print help. πŸŽ€
  • -V, --version β€” Print version. πŸŽ€

🧚 ARGUMENTS 🧚

  • <duration> β€” 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. Yep, zero = the timeout just doesn't exist. Main character says no curfew, curfew says nothing. πŸ•
  • <command> β€” a command to execute with optional arguments. Your little star of the show. 🌟

πŸ”₯ EXTRA πŸ”₯

Upon timeout, send the TERM signal to COMMAND, if no other SIGNAL specified. The TERM signal kills any process that does not block or catch that signal. It may be necessary to use the KILL signal, since this signal can't be caught.

ngl, KILL is the one that truly cannot be caught β€” it's giving "no thoughts, no handlers, just vibes and consequences." Use it when TERM isn't landing. πŸ’…

Exit status, bestie β€” memorize these, they'll come up:

124  if COMMAND times out, and --preserve-status is not specified
125  if the timeout command itself fails
126  if COMMAND is found but cannot be invoked
127  if COMMAND cannot be found
137  if COMMAND (or timeout itself) is sent the KILL (9) signal
(128+9)
 -    the exit status of COMMAND otherwise

So 124 is the classic "she ran out of time," 125 is "timeout herself fumbled," 126 is "found her but couldn't get her to come out," 127 is "she doesn't even go here" (can't be found), 137 is the KILL (9) situation β€” and that's 128+9 for the math girlies β€” and a plain - means it's just COMMAND's own exit status. 😭


πŸ‘‘ VERSION πŸ‘‘

v(uutils coreutils) 0.12.0


and that's the whole page, bestie πŸ’œ β€” written up on 2026-09-17, straight from the coreutils girlies themselves. go set some boundaries with your processes, you got this. 🫢✨🌸

πŸ“¦ where this page comes from