timeout命令作用是运行指定命令,如果在指定时间后在运行则杀死该进程。

timeout命令是GNU核心实用程序软件包的一部分,该软件包几乎安装在所有Linux发行版中。后缀s代表秒(默认值),m代表分,h代表小时,d代表天。如果不添加任何单位,默认是秒。如果持续时间为0,则禁用关联的超时。

默认情况下,timeout在后台运行托管命令。

语法格式:timeout [参数]

常用参数:

-s<信号>指定在超时时发送的信号,信号可以是类似“HUP”的信号名或是信号数
-k<时间>达到给定的时间限制后会强制结束
-- -foreground在前台运行

参考实例

发送SIGKILL信号给ping命令,5秒钟后终止:

[root@linux-arae-cc ~]# timeout -s SIGKILL 5s ping linux.arae.cc

运行命令一分钟,如果命令没有结束,将在10秒后终止命令:

[root@linux-arae-cc ~]# timeout -k 10s 1m sh linuxaraecc.sh

在前台运行命令:

[root@linux-arae-cc ~]# timeout --foreground 5m ./linuxaraecc.sh