文章目录
- 命令介绍
- 语法格式
- 常用选项
- 参考示例
- (一)列出所有信号的名称
- (二)杀掉 bash 进程
命令介绍
kill 正如这个单词的意思一样,就是杀死。linux 系统中 kill 命令用来删除执行中的程序或工作。
kill 命令用来删除执行中的程序或工作。kill可将指定的信号发送给相应的进程或工作。
kill 命令默认使用信号为 15,即预设的信号为 SIGTERM(15),用于结束进程或工作,即可将指定程序终止。若仍无法终止该程序,即进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。即可使用 SIGKILL(9) 信号强制删除程序。程序或进程的编号(PID)可利用 ps 指令或 job 指令查看。
注意,使用强制杀死的时候一定要小心,因为进程没有时机清理现场,也许写入文件没有完成。如果我们不知道进程 PID 或者打算用名字杀死进程时候,killall 就能派上用场。
语法格式
kill [选项] [参数]
参数:进程或作业识别号,即指定要删除的进程或作业
常用选项
选项 | 说明 |
---|---|
-a | 当处理当前进程时,不限制命令名和进程号的对应关系 |
-l <信号编号> | 若不加<信号编号>选项,则-l参数会列出全部的信号名称 |
-p | 指定kill 命令只打印相关进程的进程号,而不发送任何信号 |
-s <信号名称或编号> | 指定要送出的信号 |
-u | 指定用户 |
参考示例
(一)列出所有信号的名称
[root@htlwk0001host ~]# kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) 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
[root@htlwk0001host ~]#
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略, 下面是常用的信号:
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
(二)杀掉 bash 进程
[root@linuxcool ~]# ps # 先查看进程的 ID
PID TTY TIME CMD
1951 pts/0 00:00:00 bash
2446 pts/0 00:00:00 ps[root@linuxcool ~]# kill -9 1951 # 干掉 bash 进程