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

在这个简短的教程中,您将学习如何使用超时和时间限制工具来运行具有时间限制的Linux命令。

Linux附带了许多命令 ,每个命令都是唯一的,并在特定情况下使用。 Linux的目标是帮助您尽快高效地工作。 Linux命令的一个属性是时间限制。 您可以为所需的任何命令设置时间限制。 如果时间到了,该命令将停止执行。

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

使用超时工具运行Linux命令

Linux有一个称为timeout的命令行实用程序,它使您可以在有时间限制的情况下执行命令。

其语法如下。

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

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

# timeout 5s ping google.com

您不必在数字5之后指定(s) 下面的命令是相同的,并且仍然可以使用。

# timeout 5 ping google.com
Linux中的超时Ping命令

Linux中的超时Ping命令

其他Postfix包括:

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

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

这是语法。

-k, --kill-after=DURATION

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

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

# timeout 8s tail -f /var/log/syslog
将时间限制设置为Linux命令

将时间限制设置为Linux命令

使用Timelimit程序运行Linux命令

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

timeout选项不同, Timelimit具有更多选项,例如killsigwarnsigkilltimewarntime

可以在基于Debian的系统的存储库中找到时间限制,并使用以下命令进行安装。

$ sudo apt install timelimit

对于基于Arch的系统,您可以使用AUR帮助程序(例如Pacaur PacmanPacker)进行安装

# 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实用程序有点复杂,但是具有更多选项。 您可以根据需要选择最合适的选项。