概述

由于需要对指定命令限制执行时长,故查找相关资料。

使用

介绍
timeout [选项] 数字[后缀] 命令 [参数]...
后缀 s 代表秒(默认值), m 代表分, h 代表小时, d 代表天。
[root@VM-8-11-centos ~]# timeout --help
Usage: timeout [OPTION] DURATION COMMAND [ARG]...
  or:  timeout [OPTION]
Start COMMAND, and kill it if still running after DURATION.
长选项的强制性参数对于短选项也是强制性的.
      --preserve-status
                 以与 COMMAND 相同的状态退出,即使命令超时
      --foreground
                 当不直接从 shell 提示运行 timeout 时,允许 COMMAND 从 TTY 读取并获取 TTY 信号; 在这种模式下,COMMAND 的孩子不会超时
  -k, --kill-after=DURATION
                 如果在发送初始信号后 COMMAND 仍在运行这么长时间,也发送 KILL 信号
  -s, --signal=SIGNAL
                 指定超时时发送的信号; SIGNAL 可以是“HUP”之类的名称或数字; 有关信号列表,请参阅"kill -l"
测试
[root@VM-8-11-centos conf]# timeout 10 ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=251 time=3.27 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=251 time=3.15 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=251 time=3.15 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=251 time=3.16 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=5 ttl=251 time=3.15 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=6 ttl=251 time=3.16 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=7 ttl=251 time=3.15 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=8 ttl=251 time=3.13 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=9 ttl=251 time=3.16 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=10 ttl=251 time=3.18 ms
END

本文标题:Shell限制执行命令时长

本文作者:宇宙最帅的男人

本文链接:https://lolicp.com/linux/202119157.html

版权声明:转载或者引用本文内容请注明来源及原作者,本文著作权归作者 (宇宙最帅的男人) 所有。

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

最后修改:2021 年 06 月 19 日
如果觉得我的文章对你有用,请随意赞赏