Linux命令之 kill命令
warning:
这篇文章距离上次修改已过2009天,其中的内容可能已经有所变动。
kill命令是用来向指定的进程(terminate a process)发送一个信号,来控制进程是否终止/暂停/退出。
info:如果想结束指定用户所有进程可以试试
killall命令命令语法
kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 | 任务声明
kill -l [信号声明]| 常用信号 | ||
|---|---|---|
| HUP | 1 | 终端断线 |
| INT | 2 | 中断(同 Ctrl + C) |
| QUIT | 3 | 退出(同 Ctrl + \) |
| TERM | 15 | 终止 |
| KILL | 9 | 强制终止 |
| CONT | 18 | 继续(与STOP相反, fg/bg命令) |
| STOP | 19 | 暂停(同 Ctrl + Z) |
info:1、kill命令的信号编号可以省略,如果省略的话则默认向进程发送
TERM(15)终止信号,相当于kill -15 [PID]命令。注意:普通用户只能使用不带signal参数的kill命令或最多使用-9强制终止信号。2、kill只能当前用户说拥有进程发出信号,若没有权限或没有次进程则会报错。
3、可以向多个进程发信号或终止它们。
4、当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。
5、应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用KILL(9)信号,因为进程不能首先捕获它。
6、要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。
附加参数
| 参数 | 说明 |
|---|---|
| -l | 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称 |
| -s | 指定发送信号 |
常用范例
列出所有信号名称
kill -l
64个信号名称查询指定信号的数值
kill -l kill
kill -l stop
kill和stop信号值先查找进程PID,然后用kill杀掉
kill 15478
top进程被结束了彻底结束进程
kill –9 15576
向top进程发送stop信号