失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux进程kill命令关不掉

linux进程kill命令关不掉

时间:2018-09-08 02:32:56

相关推荐

linux进程kill命令关不掉

1、Linux kill 命令用于删除执行中的程序或job。

语法:kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

kill [-s <信息名称或编号>][程序]或kill [-l <信息编号>]

参数说明

-l <信息编号> 若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。-s <信息名称或编号> 指定要送出的信息。[程序] [程序]可以是程序的PID或是PGID,也可以是job编号。

使用 kill -l 命令列出所有可用信号。

最常用的信号是:

1 (HUP):重新加载进程。9 (KILL):杀死一个进程,操作系统从内核级别强制杀死一个进程15 (TERM):正常停止一个进程,操作系统发送一个通知告诉应用主动关闭。效果是正常退出进程,退出前可以被阻塞或回调处理。(默认)

2、进程kill关不掉

linux 的kill命令实际是向进程发送信号,并不是杀死的意思,-9表示无条件退出,但由进程自行决定是否退出,这就是为什么kill -9终止不了系统进程和守护进程的原因。

通常有两种情况是不能kill掉的

进程已经成为僵尸进程(Zombie),当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了。("Zombie"进程要等到下次重启时才会消失,但它的存在不会影响系统性能。)进程正处在内核状态(kernel mode),Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill -9也变得无效了。

举例:

解决办法:

1、使用 ps -A -ostat,ppid,pid,cmd | grep pid命令,查看进程号以及父进程号,也可以进入到 /proc/1544目录下,执行cat status,查看父进程号2、kill -9 父进程号 子进程号:

[root@bigdata3 ~]# kill -9 87186 87200

3、在kill前如果不放心,怕误杀,可以使用 ls -ail 查看PID被哪个应用程序占用。如图发现,被ocdp用户占用,可以切换命令,重复上述命令。

3、杀死指定用户所有进程(慎用)

#kill -9 $(ps -ef | grep ocdp) //方法一 过滤出ocdp用户进程 #kill -u ocdp//方法二

如果觉得《linux进程kill命令关不掉》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。