2014-03-04 41 views
3

我有類似名稱的許多過程,如「proc_1asd,proc_2wqe,proc_3zxc」巴什 - killall -r不匹配

我需要一個非殘酷的中斷信號發送給他們,pkill -f的工作,但它沒有安裝。

我試圖使用killall -r proc_*,但我得到這個錯誤

proc_ *:沒有過程中發現

我的印象中,我做一些愚蠢至極,但我不不知道是什麼。

下面是一個圖像(過程的實際名稱是jnode_something)

Task manager screenshot

pgrep -lf 'proc_.*'返回

15070 jnode_0 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/0_config.txt Logs 
15071 jnode_1 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/1_config.txt Logs 
15072 jnode_2 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/2_config.txt Logs 
15073 jnode_3 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/3_config.txt Logs 
15074 jnode_4 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/4_config.txt Logs 
+0

對我來說很好。什麼版本的killall和什麼操作系統? – iamauser

+0

Ubuntu 12.04.4 LTS和killall(PSmisc)22.15。但它在Ubuntu中不起作用。不過,我需要這個以後在另一個Unix上工作。不過,如果它不適用於Ubuntu,我想我沒有機會。 – Agostino

+0

奇怪的是,它適用於使用'killall -r firef *'的firefox,但不適用於這些進程。他們在那裏,我可以在任務管理器中看到他們。 'pkill -f proc_ *'適用於Ubuntu,但是我不能在其他Unix上使用它。 – Agostino

回答

7

似乎有點小題大做,但如果你可以從p纖ep獲取的PID,只要使用他們作爲殺人的論據。例如:

pgrep -lf 'proc_.*' | awk '{print $1}' | xargs kill -f 
+1

其中'-f'實際上是信號'-2'的數字應該罰款非野蠻終止。 – Agostino

+7

這*是*過度殺傷,只是'pgrep -f'proc _。*'| xargs kill' ;-) –

+0

Ubuntu14LTS使用pgrep -f'proc _。*'| awk'{print $ 1}'| xargs殺死 – user2967920