约 4297 字

约 21 分钟

#Bash 的 timeout 命令

timeout [OPTION] DURATION COMMAND [ARG]...

功能

执行命令时附带超时限制。

类型

可执行文件(/usr/bin/timeout),属于 coreutils。

参数

  • OPTION 选项:
    • --preserve-status - 超时时仍返回 COMMAND 的返回值
    • --foreground - 当不从 shell 运行命令时,运行 COMMAND 从 tty 读取输入和接收信号;此模式下 COMMAND 创建的子进程不会超时
    • -k, --kill-after=DURATION - 发送信号后如果经过 DURATION 时间仍未退出,则发送 SIGKILL
    • -s, --signal=SIGNAL - 指定超时时发送的信号
    • -v, --verbose - 打印详细信息
    • --help - 显示帮助
    • --version - 显示版本
  • DURATION - 超时时间
  • COMMAND - 执行的命令
  • ARG - 命令的参数列表

返回值

  • 124 - 超时(且未启用 --preserve-status 选项)
  • 125 - timeout 自身失败
  • 126 - COMMAND 不能运行
  • 127 - COMMAND 不存在
  • 137 - SIGKILL
  • 其它情况返回 COMMAND 的返回值

#示例

$ timeout -v 3s sleep 10s
timeout: sending signal TERM to command ‘sleep’

#推荐阅读

#手册

更新: 2026/1/18

作者: PlanC

创建: 2025/12/5