0

我想在几秒钟SIGNAL后发送到一个进程。.5

也许这不是一个好主意,但我想为一个不常见的临时案例做这件事。

我试过跟随,但它不起作用。

(sleep .5;kill -9)| some_process
4

2 回答 2

5

信号不指向管道;它们被定向到进程标识符(pids)。我可能会尝试这样的事情:

some_process & sleep .5; kill -KILL $!

它将some_process在后台运行(这就是它的&用途)。半秒后,它将使用$!指示最后一个后台进程的 pid 的变量。

(尽管sleep在某些系统上只接受整数。)

于 2013-02-06T03:22:08.327 回答
1

sleep .5; kill -9 $(pidof some_process) 应该管用。pidof返回进程名称的进程 ID。将$()命令的结果返回给kill命令。另一种选择是:

sleep .5; pidof some_process | xargs kill -9

检查man pidof详情。

编辑:还有timeout. timeout -s SIGKILL 0.5s some_process如果我正确理解了您的问题,应该可以解决问题。

于 2013-02-06T03:00:50.167 回答