使用毫秒级超时时间在Linux中终止进程

3

我希望在Linux上指定时间后强制终止程序。我发现Linux中的“timeout”工具可以在指定时间后杀死程序,但它不接受毫秒。也就是说,“timeout TIME ./PROGRAM”会在经过TIME秒后杀死PROGRAM,其中TIME不是毫秒而是秒。是否有一种方法可以在Linux SHELL上在经过一些毫秒后杀死进程?欢迎任何评论。

3个回答

5

最新版本的timeout也支持毫秒。您可以提供等待时间作为浮点数。例如:

$timeout 0.003s sleep 0.003 && echo foo
$

while

$ timeout 0.003s sleep 0.001 && echo foo
foo

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 

-1

你可以使用一个函数,接受毫秒值

timeout_m ()
{
  $2 &
  for (( y=0; y<$1*50; y++ ))
  do
    :
  done
  kill $!
}

2
只需输入不同的值来找出接近所需毫秒睡眠时间的数值即可,;-)?根据硬件速度需要更改50的值?祝大家好运。 - shellter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接