Linux里面什么是僵尸进程

 我来答
帐号已注销
2023-03-03 · 超过19用户采纳过TA的回答
知道答主
回答量:236
采纳率:100%
帮助的人:5.1万
展开全部

僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程都将成为一个僵尸进程。如果父进程先退出,子进程被init接管,子进程退出后init会收回其占用的相关资源。

我们都知道进程的工作原理。我们启动一个程序,开始我们的任务,然后等任务结束了,我们就停止这个进程。进程停止后,该进程就会从进程表中移除。

你可以通过System-Monitor查看当前进程。

In UNIX System terminology, a process that has terminated,but whose parent
has not yet waited for it, is called a
zombie.在Unix系统中,一个进程结束了,但是它的父进程没有等待它,那么它将变成一个僵尸进程。但是如果该进程的父进程已经先结束了,那么该进程就不会变僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由init来接管他,成为他的父进程。

怎么查看僵尸进程?

利用命令ps,可以看到有父进程ID为1的进程是孤儿进程;s状态为z的是僵尸进程。

注意:孤儿进程是尚未终止但已停止的进程,但其父进程已经终止,由init收养;而僵尸进程则是已终止的进程,其父进程不一定终止。

士之云CW
2020-05-09 · TA获得超过110个赞
知道答主
回答量:138
采纳率:93%
帮助的人:51.8万
展开全部

一个已经终止,但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源)的进程被称为僵死进程(Zombie Process)。

相关处理办法:

在Linux中可以用  ps auwx  发现僵尸进程

a all w/ tty,including other users 所有窗口和终端,包括其他用户的进程

u user-oriented 面向用户(用户友好)

-w,w wide output 宽格式输出

x processes w/o controlling ttys  在僵尸进程后面 会标注

ps axf  看进程树,以树形方式现实进程列表

ps axm  会把线程列出来,在linux下进程和线程是统一的,是轻量级进程的两种方式。

ps axu  显示进程的详细状态

===========================================

killall  kill -15  kill -9  一般都不能杀掉 defunct进程

用了kill -15,kill -9以后 之后反而会多出更多的僵尸进程

kill -kill pid  fuser -k pid  可以考虑杀死他的parent process,

kill -9 他的parent process

参见:网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式