Linux命令之 kill命令

warning: 这篇文章距离上次修改已过1384天,其中的内容可能已经有所变动。
toc end ->

kill命令是用来向指定的进程(terminate a process)发送一个信号,来控制进程是否终止/暂停/退出。

info:如果想结束指定用户所有进程可以试试killall命令

命令语法

kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 | 任务声明

kill -l [信号声明]
常用信号
HUP1终端断线
INT2中断(同 Ctrl + C)
QUIT3退出(同 Ctrl + )
TERM15终止
KILL9强制终止
CONT18继续(与STOP相反, fg/bg命令)
STOP19暂停(同 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个信号名称64个信号名称


查询指定信号的数值

kill -l kill
kill -l stop

kill和stop信号值kill和stop信号值


先查找进程PID,然后用kill杀掉

kill 15478

top进程被结束了top进程被结束了


彻底结束进程

kill –9 15576

向top进程发送stop信号向top进程发送stop信号

评论已关闭