网站搜索

如何在 Linux 中运行有时间限制(超时)的命令


Linux 附带了大量命令,每个命令都是唯一的并在特定情况下使用。 Linux 的目标是帮助您尽可能快速、高效。 Linux 命令的一项属性是时间限制。您可以为任何您想要的命令设置时间限制。如果时间到期,命令将停止执行。

在这个简短的教程中,您将学习两种如何在命令中使用时间限制的方法。

在本页面:
  1. 使用超时工具运行 Linux 命令
  2. 使用 Timelimit 程序运行 Linux 命令

使用超时工具运行 Linux 命令

Linux 有一个名为超时的命令行实用程序,它使您能够在有时间限制的情况下执行命令。

其语法如下。

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

要使用该命令,请为要运行的命令指定一个超时值(以秒为单位)。例如,要在 5 秒后使 ping 命令超时,您可以运行以下命令。

timeout 5s ping google.com

您不必在数字 5 后面指定(s)。下面的命令是相同的并且仍然有效。

timeout 5 ping google.com

其他后缀包括:

  • m 代表分钟
  • h 代表小时
  • d 代表天

有时,即使超时发送初始信号后,命令也可能继续运行。在这种情况下,您可以使用 --kill-after 选项。

这是语法。

-k, --kill-after=DURATION

您需要指定一个持续时间,让超时知道在多长时间后要发送终止信号。

例如,显示的命令将在 8 秒后终止。

timeout 8s tail -f /var/log/syslog

使用 Timelimit 程序运行 Linux 命令

Timelimit 程序运行给定的命令,然后在指定时间后使用给定的信号终止进程。它首先传递警告信号,然后在超时后发送终止信号。

timeout选项不同,Timelimit有更多选项,例如killsigwarnsigkilltime > 和警告时间

Timelimit 可以在基于 Debian 的系统的存储库中找到,要安装它,请使用以下命令。

sudo apt install timelimit

对于基于Arch的系统,您可以使用AUR帮助程序安装它,例如PacaurPacman >打包机

Pacman -S timelimit
pacaur -S timelimit
packer -S timelimit

其他Linux发行版,您可以下载timelimit源并手动安装。

安装后,运行以下命令并指定时间。在此示例中,您可以使用 10 秒。

timelimit -t10 tail -f /var/log/pacman.log

请注意,如果您不指定参数,Timelimit 将使用默认值:warntime=3600 秒、warnsig=15killtime =120killsig=9

结论

在本指南中,您学习了如何在 Linux 中运行有时间限制的命令。在审核中,您可以使用超时命令或时间限制实用程序。

Timeout 命令很容易使用,但 Timelimit 实用程序有点复杂,但有更多选项。您可以根据您的需要选择最合适的选项。