00. 目录

01. 命令概述

kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。

02. 命令格式

语法格式:kill [参数] [进程号]

03. 常用选项

-l  <信号变化哦啊>,若不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号

04. 参考示例

4.1 列出所有信号名称

[deng@itcast ~]$ 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
[deng@itcast ~]$ 

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略,下面是常用的信号:

HUP     1    终端断线
INT     2    中断(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    终止
KILL    9    强制终止
CONT   18    继续(与STOP相反, fg/bg命令)
STOP   19    暂停(同 Ctrl + Z)

4.2 通过进程号杀死进程

[deng@itcast ~]$ sleep 3000 &
[1] 122936
[deng@itcast ~]$ ps 
   PID TTY          TIME CMD
 91509 pts/1    00:00:01 bash
122936 pts/1    00:00:00 sleep
123053 pts/1    00:00:00 ps
[deng@itcast ~]$ kill -9 122936
[deng@itcast ~]$ 

4.3 使用默认的信号杀死进程

[deng@itcast ~]$ ps
   PID TTY          TIME CMD
 91509 pts/1    00:00:01 bash
124811 pts/1    00:00:00 sleep
124846 pts/1    00:00:00 ps
[deng@itcast ~]$ kill 124811
[1]+  已终止               sleep 3000
[deng@itcast ~]$ 

4.4 使用9号信号的编号杀死进程

[deng@itcast ~]$ kill -SIGKILL 124811

4.5 列出指定信号的编号

[deng@itcast ~]$ kill -l SIGKILL 
9
[deng@itcast ~]$ kill -l KILL    
9
[deng@itcast ~]$ 

4.6 不允许杀死1号进程

[deng@itcast ~]$ ps -aux | grep systemd
[deng@itcast ~]$ kill -9 1
-bash: kill: (1) - 不允许的操作
[deng@itcast ~]$ kill -SIGHUP 1
-bash: kill: (1) - 不允许的操作

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总