Linux kill命令詳解


1.命令格式

kill [參數] 進程號

2.命令功能

發送指定的信號到相應進程,如果不指定信號則發送SIGTERM(15)終止指定進程,如果無法終止該進程,可以向進程號發送SKILL(9)信號,該信號將強制結束進程,

3.命令參數

選項 含義
-l 參數為信號名稱,顯示該信號的數字。如果不加信號參數,顯示全部信號名稱
-p 指定kill 命令只打印相關進程的進程號,而不發送任何信號
-s 指定發送信號
-signal_name 指定進程發送信號名稱
-signal_number 指定進程發送信號數字

說明:

  1. kill命令可以帶信號選項,也可以不帶信號。如果沒有信號號碼,kill命令就會發出終止信號(15),該信號可以被進程捕獲,使進程在退出之前可以清理並釋放資源。也可以向進程發送發送指定信號,如: kill -9 12356 向進程號12356發送SIGKILL信號
  2. 可以向多個進程發信號或終止它們
  3. 當kill成功地發送了信號后,shell會在屏幕上顯示出進程的終止信息
  4. 應注意,信號使進程強行終止,這常會帶來一些副作用,如數據丟失或者終端無法恢復到正常狀態。發送信號時必須小心,只有在萬不得已時,才用kill信號(9),因為進程不能首先捕獲它。要撤銷所有的后台作業,可以輸入kill 0。因為有些在后台運行的命令會啟動多個進程,跟蹤並找到所有要殺掉的進程的PID是件很麻煩的事。這時,使用kill 0來終止所有由當前shell啟動的進程,是個有效的方法

4.使用方法

例子1:列出所有的信號名稱

命令 kill -l

輸出:

root@hylaz:~# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX
常見的信號:	
     1       HUP (hang up)  終端短線
     2       INT (interrupt) 中斷 (Ctrl+C)
     3       QUIT (quit)     退出  (Ctrl+\)
     6       ABRT (abort) 
     9       KILL (non-catchable, non-ignorable kill) 強制退出
     14      ALRM (alarm clock) 
     15      TERM (software termination signal) 終止
     19      STOP 暫停 (Ctrl+Z)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM