歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 五個你可能不了解的killall選項

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

日期:2017/2/28 14:32:24   编辑:Linux教程

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

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

--------------------------------------分割線 --------------------------------------

相關閱讀

Linux命令及Linux終端的20個趣事 http://www.linuxidc.com/Linux/2014-04/99937.htm

用Linux命令行修圖——縮放、編輯、轉換格式 http://www.linuxidc.com/Linux/2014-03/98456.htm

自學Linux命令的四種方法 http://www.linuxidc.com/Linux/2014-03/98349.htm

Linux命令最簡單的使用方法 http://www.linuxidc.com/Linux/2014-03/97468.htm

Linux命令行模式如何設置鍵盤快捷鍵 http://www.linuxidc.com/Linux/2014-02/97421.htm

11個很少有人知道但很有用的Linux命令 http://www.linuxidc.com/Linux/2013-10/92095.htm

--------------------------------------分割線 --------------------------------------

Linux 的 killall 命令

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

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

1. 基本示例

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

  1. $ ps -aef | grep “test”
  2. himanshu 39692811014:14 pts/000:00:00./test
  3. himanshu 39702811014:14 pts/000:00:00./test_again

如何殺死“test_again”進程呢?

  1. $ killall test_again
  2. [2]+Terminated./test_again

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

  1. $ ps -aef | grep “test”
  2. himanshu 39692811014:14 pts/000:00:00./test

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

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

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

  1. $ ps -aef | grep “test”
  2. himanshu 41773161014:54 pts/300:00:00./test
  3. himanshu 41783161014:54 pts/300:00:00./test_again
  4. himanshu 41803161014:54 pts/300:00:00 grep --color=auto test
  5. $ killall TEST
  6. TEST:no process found

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

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

  1. $ killall -I TEST
  2. [1]-Terminated./test

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

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

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

  1. $ killall test test_again
  2. [2]-Terminated./test_again
  3. [3]+Terminated./test

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

這裡是例子:

  1. $ killall -i test test_again
  2. Kill test(4201)?(y/N) y
  3. Kill test_again(4202)?(y/N) y
  4. [1]-Terminated./test
  5. [2]+Terminated./test_again

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

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-05/101309p2.htm

Copyright © Linux教程網 All Rights Reserved