如何在 Linux 中运行有时间限制(超时)的命令
Linux 附带了大量命令,每个命令都是唯一的并在特定情况下使用。 Linux 的目标是帮助您尽可能快速、高效。 Linux 命令的一项属性是时间限制。您可以为任何您想要的命令设置时间限制。如果时间到期,命令将停止执行。
在这个简短的教程中,您将学习两种如何在命令中使用时间限制的方法。
在本页面:
- 使用超时工具运行 Linux 命令
- 使用 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有更多选项,例如killsig、warnsig、killtime > 和警告时间。
Timelimit 可以在基于 Debian 的系统的存储库中找到,要安装它,请使用以下命令。
sudo apt install timelimit
对于基于Arch的系统,您可以使用AUR帮助程序安装它,例如Pacaur、Pacman和 >打包机。
Pacman -S timelimit
pacaur -S timelimit
packer -S timelimit
其他Linux发行版,您可以下载timelimit源并手动安装。
安装后,运行以下命令并指定时间。在此示例中,您可以使用 10 秒。
timelimit -t10 tail -f /var/log/pacman.log
请注意,如果您不指定参数,Timelimit 将使用默认值:warntime=3600 秒、warnsig=15、killtime =120 和 killsig=9。
结论
在本指南中,您学习了如何在 Linux 中运行有时间限制的命令。在审核中,您可以使用超时命令或时间限制实用程序。
Timeout 命令很容易使用,但 Timelimit 实用程序有点复杂,但有更多选项。您可以根据您的需要选择最合适的选项。