A. 【kill】kill -9 杀不死的进程处理办法
kill -9 发送SIGKILL信号给进程将其终止,但对于以下两种情况不适用:
1.该进程是僵尸进程(STAT z),此时进程已经释放所有的资源,但是没有被父进程释放。
僵尸进程要等到父进程结束,或者重启系统才可以被释放。
2.进程处于“内核态”,并且在等待不可获得的资源,处于“内核态 ”的资源默认忽略所有信号,只能重启系统解决。
进程在linux 中会处于两种状态,即用户态和内核态。只有处于用户态的进程才可以用“kill”命令将其终止
一般可以用top命令发现动态进程表,其中zombie是僵尸进程:
用ps和grep命令寻找僵尸进
# ps -A -o stat,ppid,pid,cmd
# ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'
命令注解:
-A 参数列出所有进程
-o 自定义输出字段
我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程。
我们使用grep抓取stat状态为zZ进程,使用 kill -HUP ${pid} 来杀掉这个僵尸进程。
B. Linux中kill命令怎么杀不死僵死进程,一杀死就重启,怎么解决(root权限也杀不死)
僵死进程杀不死的,只有重启 -9也没用
C. LINUX KILL -9 杀不掉,求解决方法
一个进程对kill -9不响应我知道的有两种情况
未接受到信号或者没有得到分配的时间来完成自己退出所需要的步骤,因为你的CPU100%这个市可能的,多等一些时间应该会自动中止
进程处于IO等待中这时候屏蔽了信号接收自然不会对KILL作出响应,除非IO的请求得到响应,要判断这种情况你可以看 ps aux|grep vi看看进程状态, 如果是 D 那就是了,这个情乱会麻烦一点因为它需要请求的IO得到满足或者被拒绝,而系统没有给与明确的答复他就一直干等着,根据你的描述你需要看这个打开的文件的情况,如果是nfs,那么建议在添加挂载选项为 bg,hard,intr避免这个问题的重现,如果是本地文件你需要察看硬盘或者存储阵列卡是否有问题但是要杀死这个进程却需要重启来解决
D. 如何查找和杀掉Linux中的僵尸进程
Linux 系统中,进程就是一个程序的运行实例。它可能运行在前端(比如有交互的进程),也可能运行在后端(比如无交互或自动运行的进程)。它可能是一个父进程(运行期间创建了其他进程),也可能是一个子进程(由其他进程所创建)。
在 Linux 系统中,除 PID 为 0 的第一个 init 进程(或 systemd )外,其余进程都有父进程。进程也可以拥有自己的子进程。
你可以通过使用 pstree 命令 来查看进程的树型结构,你可以清晰的看到各个进程的“家族树”。
在 Linux 系统中,正常情况下,子进程死亡后其父进程会接收到通知进行一些例如释放内存之类的清理操作。但是,如果父进程未收到通知察觉子进程死亡,那么子进程就进入了“僵死”状态。
这就是僵死进程产生的原因。
僵尸进程并不可怕,少量的僵尸进程对系统影响并不大。但如果系统的内存已经所剩不多或者有太多的僵尸进程在耗掉内存,问题会变得糟糕。
同样,大部分 Linux 系统进程最大 PID 设置为 32768,如果过多僵尸进程导致其他重要任务没有 PID 可用,那么你的系统会发生崩溃。
特别当存在一个编码糟糕的程序开始大量产生僵尸进程的时候,这种情况经常发生。在这种情况下,我们就需要找到并杀死僵尸进程。
在linux系统中,进程有如下几种状态,它们随时可能处于以上状态中的一种:
我们可以在命令终端中通过 top命令 来查看系统进程和它的当前状态。
命令如下:
如上面截图中看到的,其中共有 250 个任务(进程),其中 1 个处在 “运行中running” 状态,248 个进程处于 “休眠sleep” 状态,还有一个处于 “僵尸zombie” 状态。
现在问题进入下一步,如何杀死 “僵尸” 进程?
僵尸进程对系统来说就是已经死亡的进程,那么如何杀掉一个已经死亡的进程呢?
方法很简单,我们只需要通过如下ps命令就可以列举僵尸进程,得到它们的进程 ID。
ps ux 命令输出的第 8 列显示了进程状态。上述命令将会打印所有处在 Z+ 状态(表示僵尸状态)的进程。
确认了进程 ID 后,我们可以得到它的父进程 ID:
你也可以将上述两个命令结合在一起,直接得到僵尸进程的 PID 及其父进程的 PID:
通过以上命令都可以找到僵尸进程,然后你就可以通过 kill命 令杀掉了。
或者通过如下命令查看僵尸进程:
该命令输出结果上你可以直接看出其父进程ID,这时候你直接使用kill命令杀掉即可。
再次运行 ps 命令或 top 命令,你可以验证僵尸进程是否已经被杀死。
通过本文你将认识 Linux 系统中的僵尸进程以及明白了其产生的主要原因。同时,你也能学会如何查找僵尸僵尸进程并杀掉僵尸进程。
当然你也可以自己别写脚本设置成定时运行任务自动来替你做这些工作。
E. linux服务器root也无法杀掉的进程,提示没有那个进程,求大神帮忙
这其实是一个与grep相关联的进程(因为你在ps这个命令中带了grep,在你使用grep的时候,grep也有属于它自己的进程)真正的mysql服务的进程在你停掉mysql服务的时候就已经被全部终止了,既然被全部终止了那就是原来的服务的进程全都不存在了,既然不存在了又怎么杀的掉呢。当你以为还没把它彻底干掉的时候,它早就死了不知道有多长时间了。
F. linux中遇到僵尸进程,用Kill -9、kill -18和kill -15都杀不掉,有谁知道怎么杀吗
子进程杀不掉,就杀父进程。
G. linux怎么杀掉内核进程
终止一个进程或终止一个正在运行的程序,一般含液是通过 kill 、killall、pkill、xkill 等进行悔卖。比如一个程序已经死掉,但又不能退出,这时谈前物就应该考虑应用这些工具。
H. linux下nginx一直杀不完是什么原因
nginx的进程分为Master进程和worker进程,worker进程是Master派生出来的子进程,其数量始终维持在一个数量上,当缺少一个worker进程是,Master就会派生一个新的子进程。所以你杀worker进程是杀不完的。
可以这样做:
kill `pgrep -o nginx`
解释一下:
pgrep -o nginx 查看第一个启动的进程号,一般就是主进程号了。
kill `pgrep -o nginx` 等价于 kill 主进程号。