我希望在Linux上指定时间后强制终止程序。我发现Linux中的“timeout”工具可以在指定时间后杀死程序,但它不接受毫秒。也就是说,“timeout TIME ./PROGRAM”会在经过TIME秒后杀死PROGRAM,其中TIME不是毫秒而是秒。是否有一种方法可以在Linux SHELL上在经过一些毫秒后杀死进程?欢迎任何评论。
最新版本的timeout也支持毫秒。您可以提供等待时间作为浮点数。例如:
$timeout 0.003s sleep 0.003 && echo foo
$
while
$ timeout 0.003s sleep 0.001 && echo foo
foo
您可以这样做:
#!/bin/bash
#execute command in background
<command> &
#get process ID
PROC=$!
#sleep for 10 milliseconds then kill command
(usleep 10000; kill $PROC) &
#bring back the process ID, finish command or kill it
fg $PROC
你可以使用一个函数,接受毫秒值
timeout_m ()
{
$2 &
for (( y=0; y<$1*50; y++ ))
do
:
done
kill $!
}