當前位置:
首頁 > 知識 > 五個你可能不了解的killall選項

五個你可能不了解的killall選項

Linux的命令行提供很多命令來殺死進程。比如,你可以向「kill」命傳遞一個PID來殺死進程;「pkill」命令使用一個正則表達式作為輸入,所以和該模式匹配的進程都被殺死。

但是還有一個命令叫「killall」,默認情況下,它精確地匹配參數名,然後殺死匹配進程。在這篇文章中,我們將討論有關這個命令的實際應用。

Linux 的 killall 命令

killall命令可以用來給一個特定的進程發送一個信號。這個信號默認情況下是SIGTERM,但也可以由killall命令使用參數來指定其它信號。

現在讓我們通過一些實際的例子來看看這個命令的實際用法。

1. 基本示例

在這個例子中,我們將使用killall來殺死特定進程。假如,有兩個開頭字元相同的進程:

如何殺死「test_again」進程呢?

如你所見,killall命令終止了「test_again」進程。你可以通過ps命令來確認這個事實:

你可以觀察到「test_again」沒有被顯示出來,因為它已經被殺死了。

2. 使用 -I 選項忽略大小寫

默認情況下,killall命令是大小寫敏感的。例如:

你可以看到,killall命令找不到叫做「TEST」的進程,但是「test」進程是確確實實的在運行的。

來讓killall命令忽略大小寫,可以使用-I選項(大寫i)。例如:

你可以觀察到,現在你成功的終止了「test」進程。

3. 使用 -i 選項互動式的終止進程

killall命令可以用來終止多個進程。

但是,如果你想要killall互動式地來終止進程,你可以使用-i選項。

這裡是例子:

你可以看到,用這種方式,在同時終止多個進程時,用戶可以控制是否終止某一個進程。

4. 使用 -q 選項關閉命令執行回顯

有些時候,當killall找不到指定的進程時,它就會像下面這樣輸出錯誤信息。

但是,當你想要killall執行地安安靜靜的話,你就可以使用-q選項:

如你所見,-q選項被使用之後,killall命令的輸出信息就被抑制了。

5. 使用-l選項列出所有支持的信號(signal)

如之前描述的一樣,killall向進程發送信號。

你可以使用-s選項(後面跟一個信號名)來向一個進程發送特殊信號。

想要知道所有可以發送的信號,可以使用-l選項(小寫L)來獲取:

killall支持上面的所有信號。

看著這些信號的名字,可能你心裡就會嘀咕:這些信號都是幹什麼的?

譯者註:使用下面的命令來獲取所有信號的說明:

我需要和大家討論一件事情

killall命令的man說:假如進程的名字的長度小於等於15,默認情況下就會以完整名稱匹配。

比如,假設有兩個名字很長的進程:

第一個進程的名字有15個字元。現在,讓我們試著使用killall殺死這個進程:

它只殺死了指定的進程,另一個則沒有被殺死。

我不太確定,是我進行的嘗試中有不對的地方,還是這是killall的一個bug。假如你在評論中寫上你的觀點,我會非常感激。

順便說一下,這是我機器上killall命令的版本信息:

來自Linux中國

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 千鋒JAVA開發學院 的精彩文章:

網路視頻直播系統需要執行的優化方案
使用AOP實現許可權攔截校驗

TAG:千鋒JAVA開發學院 |