Linux命令kill和signal

來源:互聯網
上載者:User
 

kill命令用於終止指定的進程(terminate a process),是Unix/Linux下進程管理的常用命令。通常,我們在需要終止某個或某些進程時,先使用ps/pidof/pstree/top等工具擷取進程PID,然後使用kill命令來殺掉該進程。kill命令的另外一個用途就是向指定的進程或進程組發送訊號(The  command kill sends the specified signal to the specified process or process group),或者確定進程號為PID的進程是否還在。比如,有許多程式都把SIGHUP訊號作為重新讀取設定檔的觸發條件。

一 常用參數格式:kill <pid>格式:kill -TERM <pid>發送SIGTERM訊號到指定進程,如果進程沒有捕獲該訊號,則進程終止(If no signal is specified, the TERM signal is sent.  The TERM signal will kill processes which do not catch this signal.)

 

格式:kill -l列出所有訊號名稱(Print a list of signal names.  These are found in /usr/include/linux/signal.h)。只有第9種訊號(SIGKILL)才可以無條件終止進程,其他訊號進程都有權利忽略。下面是常用的訊號:HUP     1    終端斷線INT       2    中斷(同 Ctrl + C)QUIT    3    退出(同 Ctrl + \)TERM    15    終止KILL      9    強制終止CONT   18    繼續(與STOP相反, fg/bg命令)STOP    19    暫停(同 Ctrl + Z)格式:kill -l <signame>顯示指定訊號的數值。 格式:kill -9 <pid>格式:kill -KILL <pid>強制殺掉指定進程,無條件終止指定進程。 格式:kill %<jobid>格式:kill -9 %<jobid>殺掉指定的任務(使用jobs命令可以列出)

 

格式:kill -QUIT <pid>格式:kill -3 <pid>使得程式正常的退出。

 

killall命令 killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。 # killall httpd  

 

二 樣本1)先用ps尋找進程,然後用kill殺掉。[root@new55 ~]# ps -ef|grep vim root      3368  2884  0 16:21 pts/1    00:00:00 vim install.logroot      3370  2822  0 16:21 pts/0    00:00:00 grep vim[root@new55 ~]# kill 3368 [root@new55 ~]# kill 3368 -bash: kill: (3368) - 沒有那個進程 2)init進程是不可殺的。3)列出所有訊號名稱[root@new55 ~]# 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) SIGUSR213) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+439) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+843) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+1247) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-1451) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-1055) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-659) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-263) SIGRTMAX-1  64) SIGRTMAX[root@new55 ~]#

 

/usr/include/linux/signal.h 寫道#define SIGHUP 1#define SIGINT 2#define SIGQUIT 3#define SIGILL 4#define SIGTRAP 5#define SIGABRT 6#define SIGIOT 6#define SIGBUS 7#define SIGFPE 8#define SIGKILL 9#define SIGUSR1 10#define SIGSEGV 11#define SIGUSR2 12#define SIGPIPE 13#define SIGALRM 14#define SIGTERM 15#define SIGSTKFLT 16#define SIGCHLD 17#define SIGCONT 18#define SIGSTOP 19#define SIGTSTP 20#define SIGTTIN 21#define SIGTTOU 22#define SIGURG 23#define SIGXCPU 24#define SIGXFSZ 25#define SIGVTALRM 26#define SIGPROF 27#define SIGWINCH 28#define SIGIO 29#define SIGPOLL SIGIO/*#define SIGLOST 29*/#define SIGPWR 30#define SIGSYS 31#define SIGUNUSED 31/* These should not be considered constants from userland. */#define SIGRTMIN 32#define SIGRTMAX _NSIG

 

參考:http://codingstandards.iteye.com/blog/847299

 

完! 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.