在 Linux 中使用超时命令为正在运行的命令设置计时器在 Linux 中使用超时命令为正在运行的命令设置计时器在 Linux 中使用超时命令为正在运行的命令设置计时器在 Linux 中使用超时命令为正在运行的命令设置计时器
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Linux 中使用超时命令为正在运行的命令设置计时器

发表 admin at 2025年2月28日
类别
  • 未分类
标签

使用超时命令,您可以设置运行其他命令和程序的时间限制。如果程序运行时间超过设定的限制,超时就会终止它。了解如何使用它。

使用超时命令,您可以设置运行其他命令和程序的时间限制。如果程序运行时间超过设定的限制,超时就会终止它。

听起来不错,对吧?我们来看看如何使用这个命令。

在Linux中使用超时命令

以下是超时命令的语法:

timeout [options] seconds command

正如您所看到的,这里的时间始终以秒为单位设置。

让我们以 sleep 命令为例。 sleep 命令基本上会“休眠”直到指定的时间。这意味着它只会等待那么多秒。

timeout 4 sleep 10

因此,如果我使用 sleep 10,则 shell 会等待 10 秒。但是,如果我将超时设置为 4 秒,则本应运行 10 秒的 sleep 命令将在 4 秒内结束。

默认情况下,超时命令会发送 SIGTERM 来礼貌地终止正在运行的程序。您可以使用 -s 选项发送一些其他信号。

你可以使用kill -l 命令查看Linux 中的所有kill 信号。假设您想要发送 SIGKILL 信号 (kill -9) 而不是默认的 SIGTERM。你可以使用这样的东西:

timeout -s SIGKILL 3 sleep 30

您还可以使用 KILL 或 9(kill -l 中列出的 SIGKILL 的数字)来代替 SIGKILL。

硬杀掉一个程序并不是一件好事。但程序可以忽略 SIGTERM。

更好的处理方法是仅当正在运行的程序忽略您的初始终止请求时才发送终止信号。

因此,假设您希望运行一个程序不超过 5 秒。但如果正在运行的程序拒绝停止,则在发送默认的 SIGTERM 后 3 秒发送终止信号。您可以使用以下内容:

timeout -k 3 5 program

这意味着你的程序运行时间不会超过 8 秒。您可以使用 time 命令来检查程序实际运行了多长时间。

超时命令有实际用途吗?

这听起来像是您可能不会每天使用的那些晦涩的 Linux 命令之一。然而,它在某些特殊情况下可能很有用。

例如,如果您开始玩终端游戏来恢复一下心情,但您忘记了时间,并且继续玩的时间远远超出了预期的时间。

在这种情况下,超时命令很有帮助。

请继续关注以了解更多 Linux 命令。请订阅时事通讯以定期接收提示和技巧。

©2015-2025 Norria support@alaica.com