有没有一种简单的方法可以让特定命令(只能通过终止Ctrl-C
)自动运行5分钟?
例如:
minute-command 5-minutes ping www.google.com
或任何其他不会终止的命令。
我希望能够指定一个时限,而不仅仅是5分钟。
有(至少)两个程序提供此功能:
姓名
timelimit
—有效地限制了流程的绝对执行时间概要
timelimit [-pq] [-S killsig] [-s warnsig] [-T killtime] [-t warntime] command [arguments ...]
和
姓名
timeout
-运行有时间限制的命令概要
timeout [OPTION] DURATION COMMAND [ARG]...
timeout [OPTION]
它们的包装如下:
$ dlocate `which timeout timelimit`
timelimit: /usr/bin/timelimit
coreutils: /usr/bin/timeout
/-----------------------------+------------+----------------\
| Feature | timelimit | timeout |
+=============================+============+================+
| time to run | -t time | first argument |
+-----------------------------+------------+----------------+
| terminate signal | -s signal | -s signal |
+-----------------------------+------------+----------------+
| grace period | -T time | -k time |
+-----------------------------+------------+----------------+
| kill signal | -S signal | (note 1) |
+-----------------------------+------------+----------------+
| propagate signals | -p | (note 2) |
\-----------------------------+------------+----------------/
笔记:
timeout
始终将SIGKILL
其用作最后一个信号。timeout
子程序这样做时,没有任何功能可以退出并带有信号。这两个程序的退出状态有所不同,但是很难一目了然,因此我建议您自己查阅手册页。
由于timeout
默认情况下已安装在更多系统上(coreutils
在许多发行版中是标准软件包),因此建议您使用,除非您需要由提供的额外功能timelimit
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句