linux命令kil linux命令kill 9的含义( 二 )


Linux中的kill与kill -9 1、我们经常会用到 kill 命令去杀死一个进程 , 但是有时会出现kill不成功的现象,这是就要用到 kill -9。
2、之所以这两个命令会有区别是因为所发送的 信号(Signal) 是不同的:
默认情况下 kill 命令的参数为 -15 ,如下图所示:
kill -15 代表的信号为 SIGTERM ,这是告诉进程你 需要被关闭 , 请自行停止运行并退出 ;
而 kill -9 代表的信号是 SIGKILL,表示进程被终止,需要 立即退出 ;
3、因此 kill -9 表示强制杀死该进程,这个信号 不能被捕获也不能被忽略。
2020-06-17Linux命令:killkill 命令通常用于终止执行中的程序 。kill可将指定的信息送至程序 。默认送的信息为SIGTERM (信息编号为15),代表关闭进程
kill -9 pid kill -15 pid (效果等同于 kill pid )
其中 9 和 15 指的是信息编号
什么是信息编号
使用kill -l 命令可以查看信息及编号
信息编号代指不同的信息 , 不同的信息有不同的含义
可以看到 9代表 SIGKILL,15 代表 SIGTERM 所以 ==kill -9 pid 代表 发送SIGKILL信息给这个pid的程序 kill -15 pid 代表 发送SIGTERM信息给这个pid的程序==
那么 SIGTERM(15)和 SIGKILL(9)有什么区别
SIGTERM :当进程接收到SIGTERM后,大多会先释放自己的资源,再停止进程,属于正常关闭进程,但是如果进程正在工作,处理io等 , 不会立马关闭 , 或者 进程卡死的情况,都会导致SIGTERM不起作用 。
SIGKILL : SIGKILL信号要求进程 立即关闭,强制关闭进程 。
工作中关闭进程时,==先kill pid(默认使用编号15) , 如果不起作用 再使用 kill -9 pid 。==
查看nginx的pid: ps -ef | grep nginx
可以看到nginx的主进程编号 是 7901
正常关闭 nginx的主进程
kill -15 7901 或者 kill 7901 再次查看nginx的进程 发现已经关闭
启动nginx,查看进程号,再强制关闭 nginx
nginx
ps -ef | grep nginx
kill -9 9827
ps -ef | grep nginx
可以看到 kill -9 只是强制关闭了 nginx的主进程,由于不是正常关闭,worker进程并没有被关闭,这就是强制关闭的弊端,再次关闭worker进程 kill -9 9828
1、kill 命令默认使用的信息编号及信息是什么?
:15,代表正常关闭进程
2、kill -9 pid 中 信息编号9代表什么信息?
:强制关闭进程
3、如何查看kill的信息编号?
:kill -l
4、写出正常关闭 进程编号 为 233 的命令
:kill -15 pidorkill pid
5、写出强制关闭 进程编号 为 233 的命令
:kill -9 pid
4-6 Linux 终止进程 --- kill (kill -15 实验)kill -15 PID —— 正常方式终止一个程序 。中断进程时应首先用 -15,以便于其能够预先清理临时文件和释放资源 。-9 作为最后手段,应对那些失控的进程 。
1)、kill -15 终止后台运行的进程 。
红色下划线:sleep 10000—— 后台运行延时 10000 秒的命令,进程 ID 为1550 。
黄色下划线:ps -j —— 列出 1550 sleep 命令的进程 。
(PID:进程 ID、PGID:线程组 ID、SID:会话 ID、TTY:进程运行的终端,标识那个终端控制 。(pts远程终端、tty系统终端)、TIME:进程运行的时间 和 CMD:命令的名称和参数) 。
jobs -l —— 列出后台运行的命令,1550 sleep 命令正在后台运行 。
蓝色下划线:kill -15 1550—— 终止1550 进程 。系统反馈 Terminated 终止 1550 进程 。
绿色方框:ps -j 已查询不到 1550 sleep 的进程 。jobs -l 也没有后台运行的命令 。
2)、kill -15 配合 fg 查看终止挂起的进程 。
红色下划线:sleep 10000 延时 10000 秒后 ctrl + z 挂起 。

推荐阅读