我希望在SIGNAL
秒后向.5
发送一个(sleep .5;kill -9)| some_process
。
也许这不是一个好主意,但我想为一个不寻常的临时案例做这件事。
我试过跟随,但它不起作用。
{{1}}
答案 0 :(得分:5)
信号不是针对管道的;它们被定向到进程标识符(pids)。我可能会尝试这样的事情:
some_process & sleep .5; kill -KILL $!
将在后台运行some_process
(这是&
的用途)。半秒后,它将使用变量$!
,它表示最后一个后台进程的pid。
(虽然某些系统上的sleep
只接受整数。)
答案 1 :(得分: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
应该可以做到。