我想在 linux 上经过指定时间后强制终止程序。我发现linux中的'timeout' util可以在指定时间后杀死程序,但它不接受MILLISECONDS。也就是说,“timeout TIME ./PROGRAM”会在 TIME 过去后杀死 PROGRAM,其中 TIME 不是毫秒而是秒。在 linux SHELL上经过一些 MILLISECONDS 之后,有没有办法杀死一个进程?任何意见将不胜感激。
问问题
5616 次
3 回答
4
你可以这样做:
#!/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
于 2013-05-07T16:58:51.317 回答
4
最新版本的超时实际上也支持毫秒。您可以将等待时间提供为浮点数。例如
$timeout 0.003s sleep 0.003 && echo foo
$
尽管
$ timeout 0.003s sleep 0.001 && echo foo
foo
于 2015-11-03T15:39:50.527 回答
-1
你可以使用一个函数,接受毫秒值
timeout_m ()
{
$2 &
for (( y=0; y<$1*50; y++ ))
do
:
done
kill $!
}
于 2013-05-07T15:34:14.717 回答