Linux中的timeout命令

timeout是一个命令行程序它运行指定的命令如果在指定的时间段后仍在运行则终止该命令。 换句话说,timeout允许您在有时间限制的情况下运行命令。 timeout命令是GNU核心实用程序软件包的一部分,该软件包几乎安装在所有Linux发行版中。如果您想运行没有commandline内置超时选项的命令,则非常方便。linux

在本文中,我们将说明如何使用Linux timeout命令。

如何使用timeout命令

timeout命令的语法如下:command翻译

timeout [OPTIONS] DURATION COMMAND [ARGlinux系统安装]…

DURATION可以是正整数或浮点数,后跟可选的单位后缀:

  • s-秒(默认)
  • m-分钟
  • h-小时
  • d-天

不使用单位时,默认为linux重启命令秒。 如果持续时commander间设置为零,则禁用关联的超时。必须在参数前提供命令选项。以下是一些基本示例,演示了如何使用timeout命令:

在五秒钟后终止命令:

timeout 5 ping 8timeoutof3000mseceeded.8.8.8

在五分钟后终止命令:

timeout 5m ping 8.8.8.8

在一分钟零六秒后终止命令:

timeout 1.1m ping 8.8.8linux命令.8

如果要运行需要提升权限linux的命令,例如tcpdump,请在timeout之前加sudo

sudo timeout 300 tcpdump -n -w data.pcap

发送特定信号

如果未给出信号,则在达到command什么意思时间限制时,timeoutSIGTERM信号发送到托管命令。 您可以使用-s--signal)选项指定要发送的信号。

例如,要在一分钟后将SIGKILL发送到ping命令,您可以使用:

sudo timeout -s SIGKILL ping 8.8.8.8

您可以按名timeouts称指定信号,例如SIGKILL或编号,例如9。 以下命令与上一个命令相同:

sudo timeout -s 9linux命令 ping 8.8.8.8

要获取所有可用信号的列表,请使用killcommand翻译 -l命令:

kill -l

杀死进程

SIGTERM是超过时间限制时linux重启命令发送的默认信号,某些linux必学的60个命令进程可能会捕获或忽略该信号。 在这些情况下,该进程在发送终止信号后继续运行。

要确保杀死受监视的命令,请使用-k--commanderkill-aftercommanding)选项,然后加上一个时间段。 在达到指定的时间限制后使用linux常用命令此选项时,timeout命令将SIGKILL信号发送到无法捕获或忽略的托管程序。

在以下示例中,timeout运行命令一分钟,如果未终止,它将在十秒钟后将其杀死:

sudo timeout -k 10 1m ping 8.8.8.8

在达到指定的时间限制后被杀死

保留退出状态

达到时间限制时,timeout返回124。 否则,它返回托管命令command什么意思的退出状态。

即使在达到时间限制时也要返回命令commandlinetimeouts退出linux是什么操作系统状态,请使用--preserve-statulinux常用命令s选项:

timeout --preserve-status 5 ping 8.8.8.8

在前台中运行

默认情况下,timeout在后台运行托管command是什么意思中文命令。 如果timeout是什么意思要在前台运行命令,请使用--foreground选项:

timeout --foreground 5m ./script.linux系统安装sh

当您要运行需要用户输入的timeout怎么解决交互式命令时,此选项很有用。

结论

timeout命令用于运行有时间限制的命令。timeout是一个简单的linux中文乱码视频命令,没有太多command选项。 通常,您将仅使用两个参数(持续时间和托管命令)来调用timeout

如果您有任何问题或反馈,请随时发表评论。