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) - 不允许的操作