2013-04-23 37 views
0

我用nohup python *.py &來運行我的龍捲風web服務,並啓動了8個進程。如何一次殺死多個龍捲風進程?

但是,真的很討厭殺死我的龍捲風過程。我必須要求kill -3 pid 8次才能最終拒絕我的服務。所以我想知道如何在我的bash中同時殺死8個進程?謝謝。

我試過killall python,但是當其他python進程運行的時候會很危險。

@Viktor建議我使用pkill -P <parent>,它適用於我的Ubuntu。但在Centos中,'pkill'不起作用。那麼我怎麼才能在Centos中激活這些流程呢?謝謝。

回答

1

這取決於你的環境。

但是你可能想看看pkill -P <parent>,它會使用相同的父pid來殺死所有的東西。

+0

感謝, 'pkill的' 我的偉大工程。它比上面的命令組合更優雅。 – zfz 2013-04-23 07:35:37

+0

Hi @Viktor,'pkill'在ubuntu中工作,但在centos中不起作用。我能怎麼做?謝謝。 – zfz 2013-04-23 07:57:31

+0

'pkill'來自procps軟件包,我確信至少有一個用於大多數Linux平臺的軟件包。如果您需要進一步的便攜性,您應該使用一個小腳本。 – leijon 2013-04-23 08:02:23

1

殺死父進程,即PID最小的進程應該執行該任務,如在ps示例中的kill -15 18054。此外,您還可以做一些grep的魔法,比如:

for i in `ps waux | grep "python spam.py" | awk '{ print $2 }'`; do kill -15 ${i}; done 
1

可能:

ps aux | grep -e 'python spam.py' | grep -v grep | awk '{print $2}' | xargs -i kill {}