我想在.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'例如? –