我想在.5
秒后发送SIGNAL
进程。通过PIPE发送Unix/Linux信号
也许这不是一个好主意,但我想做一个不寻常的临时案件。
我试过像下面,但它不工作。
(sleep .5;kill -9)| some_process
我想在.5
秒后发送SIGNAL
进程。通过PIPE发送Unix/Linux信号
也许这不是一个好主意,但我想做一个不寻常的临时案件。
我试过像下面,但它不工作。
(sleep .5;kill -9)| some_process
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
应该做的伎俩,如果我正确地理解你的问题。
信号不针对管道;他们被引导到处理标识符(pid)。我可能会尝试这样的事:
some_process & sleep .5; kill -KILL $!
这会在后台运行some_process
(这是什么&
是)。半秒钟后,它将使用变量$!
,它指示最后一次后台处理的pid。
(虽然sleep
在某些系统仅接受的整数。)
我要杀死的过程这是本'PIPE'后号。这个'some_process'不是一个不同的过程。 – Suku
基本上,我不会得到'some_process'的pid。所以需要通过管道发送'SIGNAL'到'some_process' – Suku
所以这个过程应该开始,应该在0.5秒后被杀死?也许'人超时'在这里有帮助吗? 'timeout -k'例如? –