Linux kill命令詳解

1.作用
    kill命令用來中止一個進程。
2.格式
    kill [ -s signal | -p ] [ -a ] pid ...
    kill -l [ signal ]
3.參數
    -s:指定發送的信號。
    -p:模擬發送信號。
    -l:指定信號的名稱列表。
    pid:要中止進程的ID號。
    Signal:表示信號。
4.說明
    進程是Linux系統中一個非常重要的概念。Linux是一個多任務的操作系統,系統上經常同時運行着多個進程。我們不關心這些進程究竟是如何分配的,或者是內核如何管理分配時間片的,所關心的是如何去控制這些進程,讓它們能夠很好地爲用戶服務。Linux操作系統包括三種不同類型的進程,每種進程都有自己的特點和屬性。交互進程是由一個Shell啓動的進程。交互進程既可以在前臺運行,也可以在後臺運行。批處理進程和終端沒有聯繫,是一個進程序列。監控進程(也稱系統守護進程)時Linux系統啓動時啓動的進程,並在後臺運行。例如,httpd是著名的Apache服務器的監控進程。kill命令的工作原理是,向Linux系統的內核發送一個系統操作信號和某個程序的進程標識號,然後系統內核就可以對進程標識號指定的進程進行操作。比如在top命令中,我們看到系統運行許多進程,有時就需要使用kill中止某些進程來提高系統資源。在講解安裝和登陸命令時,曾提到系統多個虛擬控制檯的作用是當一個程序出錯造成系統死鎖時,可以切換到其它虛擬控制檯工作關閉這個程序。此時使用的命令就是kill,因爲kill是大多數Shell內部命令可以直接調用的。
5.應用實例
   1)強行中止(經常使用殺掉)一個進程標識號爲324的進程:
   #kill -9 324
   2)解除Linux系統的死鎖
   在Linux中有時會發生這樣一種情況:一個程序崩潰,並且處於死鎖的狀態。此時一般不用重新啓動計算機,只需要中止(或者說是關閉)這個有問題的程序即可。當kill處於X-Window界面時,主要的程序(除了崩潰的程序之外)一般都已經正常啓動了。此時打開一個終端,在那裏中止有問題的程序。比如,如果Mozilla瀏覽器程序出現了鎖死的情況,可以使用kill命令來中止所有包含有Mozolla瀏覽器的程序。首先用top命令查處該程序的PID,然後使用kill命令停止這個程序:
    #kill -SIGKILL XXX
    其中,XXX是包含有Mozolla瀏覽器的程序的進程標識號。
    3)使用命令回收內存
    我們知道內存對於系統是非常重要的,回收內存可以提高系統資源。kill命令可以及時地中止一些“越軌”的程序或很長時間沒有相應的程序。例如,使用top命令發現一個無用 (Zombie) 的進程,此時可以使用下面命令:
     #kill -9 XXX
     其中,XXX是無用的進程標識號。 
     然後使用下面命令:
     #free
     此時會發現可用內存容量增加了。
    4)killall命令
     Linux下還提供了一個killall命令,可以直接使用進程的名字而不是進程標識號,例如:
     # killall -HUP inetd
    5)聯合使用kill和top命令觀察系統性能的變化
     首先啓動一個終端運行top命令,然後再啓動一個終端使用kill命令,這時利用上面介紹的kill命令來中止一些程序:
     #kill -SIGKILL XXX

     然後再看top命令終端的變化,包括內存容量、CPU使用率、系統負載等。

    注意,有些進程是不能中止的,不過學習Linux命令時可以試試,看看系統有什麼反應。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章