2013-12-13 61 views
0

我想殺死一個過程,我得到它的ID有:殺死Linux進程通過管道標識

pgrep -f "python myscript.py" 

我想打電話給

kill -s SIGINT 

,但我不能找到任何方式來做到這一點。

(命令必須在一行中)

回答

3

嘗試反引號操作符用於評估子命令

kill -s SIGINT `pgrep -f "python myscript.py"` 

(未經測試)

+1

'對於更復雜的需求xargs'工作了。 – Guido

+0

謝謝,它的工作完美無瑕! – Ambi

+1

Spuratic先生講述了這個實際情況如何迂迴。當我編寫它時,我並沒有坐在Linux系統的前面,所以堅持使用通用的* nix-isms而不是特定工具的細節。 –

1

你也可以的名字來殺死進程

killall -s SIGINT processname

2

這是一般最方便使用xargs從管道作爲參數傳遞數據的命令,不從stdin讀取數據本身:

pgrep -f "python myscript.py" | xargs kill -s SIGINT 
4

閱讀man pagepgreppkill是相同的程序。使用pkill向一個或多個進程發送信號,您可以使用與pgrep相同的方式進行選擇。

pkill -INT -f "python myscript.py" 

this question and answer參見unix.se(其中這個問題將是一個更適合)。