由于我是Linux / Unix系统的新手,并且刚刚阅读有关僵尸进程的信息,因此我有一个问题。我现在有10个。我需要杀死他们吗?如果是,为什么?它们是我系统上的负载吗?
592 processes: 581 sleeping, 1 running, 10 zombie, 0 stopped
由于我是Linux / Unix系统的新手,并且刚刚阅读有关僵尸进程的信息,因此我有一个问题。我现在有10个。我需要杀死他们吗?如果是,为什么?它们是我系统上的负载吗?
592 processes: 581 sleeping, 1 running, 10 zombie, 0 stopped
Answers:
您无法杀死僵尸,它已经死了。
该进程的资源是免费的,可供其他进程使用。剩下的就是过程表中的条目。不必担心,这不会影响性能。
/proc/sys/kernel/pid_max
像其他所有PID一样,僵尸PID也会受制于。
这些在ps中显示的僵尸进程是什么?我杀了他们,但他们没有消失!
僵尸是死进程。您无法杀死死者。所有进程最终都会死亡,并且一旦完成,它们就会变成僵尸。它们几乎不消耗资源,这是预料之中的,因为它们已经死了!造成僵尸的原因是僵尸的父级(进程)可以检索僵尸的退出状态和资源使用情况统计信息。父级使用wait()系统调用之一向操作系统发出信号,通知它不再需要僵尸。
进程死亡时,其所有子进程都将成为进程号1(即初始化进程)的子进程。Init 总是 在等待孩子死,以免他们成为僵尸。
如果您具有僵尸进程,则意味着这些僵尸尚未被其父级等待(请查看ps -l显示的PPID)。您有三个选择:修复父进程(使其等待);杀死父母 或忍受它。请记住,使用它并不难,因为僵尸在ps输出中仅占用多于一行。
资料来源:http : //www.linuxsa.org.au/tips/zombies.html
而且,如果您正在大肆杀戮,那么这个超级用户线程可能对您很有趣: 如何找到僵尸进程的父进程?
这个过程不需要被杀死。
万一您确实想杀死它(无论出于何种原因),请确保朝头部射击,这是一个有用的命令:
kill -HUP `ps -A -ostat,ppid | grep -e '^[Zz]' | awk '{print $2}'`
shoot at the head
。