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
完!