1. 首页
  2. 综合百科
  3. 僵尸进程怎么解决(Linux系统僵尸进程详解)

僵尸进程怎么解决(Linux系统僵尸进程详解)

简介:关于僵尸进程怎么解决(Linux系统僵尸进程详解)的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

在本文中,我们将讨论什么是僵尸进程,如何创建僵尸进程,以及如何杀死僵尸进程。

说到进程,让我们先看看另一个概念:程序。

一个程序基本上就是你电脑硬盘上的一个文件(就像硬盘女神一样),它在被CPU执行之前什么都不能做。

当程序执行时,它运行的实例称为进程。一个程序可以对应多个进程。

进程是系统的工作单位。系统由几个进程组成,其中一些是操作系统进程(执行系统代码),另一些是用户进程(执行用户代码)。所有这些进程都可以并发执行,例如通过在单个CPU上进行多路复用。

可以使用ps命令查看Linux系统中的所有进程。

$ ps -ax PID TTY STAT TIME命令1 ?Ss 0:01 /usr/lib/systemd/systemd rhgb——switch -root——sys 2 ?S 0:00 [kthread] 3 ?I 0:00 [rcu_gp] 4 ?I 0:00 [rcu_par_gp]当一个进程调用fork生成另一个进程时,原来的进程称为父进程,新的进程称为子进程。

在Linux中有很多这样的父进程。可以使用pstree命令查看系统中的进程谱系。

美元pstree-psnsystemd(1)systemd-journal(952)systemd-udevd(963)systemd-oomd(1137)systemd-resolve(1138)systemd-userdbd(1139)systemd-userwor(12707)systemd-userwor(12714)systemd-userwor(12715)systemd-userwor(12714)systemd-userwor(12715)auditd(1140)(1141)dbus-Broker-lau(1164)dbus-broker(1165)avahi-daemon(1166)avahi-daemon(1196)bluetoothd(1167)系统中每个进程分配一个数字。在所有这些进程中,有一个非常特殊的进程,它的ID号是1。它是系统在引导期间执行的第一个进程,PID 1之后的每个后续进程都是它的子代进程。

如前所述,在Linux中,我们对子进程进行fork。一旦创建,父进程和子进程将独立运行,父进程无法知道子进程何时结束。

通常,在子进程退出后,父进程使用wait或waitpid函数回收子进程的资源并获取子进程的终止状态。

但是,如果父进程在子进程之前结束,则子进程将成为孤儿进程。孤儿进程被init进程(进程号为1)采用,init进程负责收集孤儿进程的状态。

如果子进程比父进程先退出,并且父进程太忙,子进程无暇回收子进程的资源,子进程剩余资源(PCB)存储在内核中,成为僵尸进程,如下图所示:

前面介绍了僵尸进程的生成原理,下面我们用代码来模拟僵尸进程的生成。

int main(void) else if (pid 0) else返回0在这个程序中,父进程创建子进程后,它将休眠5秒。孩子只睡了3秒,然后就离开了。在它退出后,父进程不会醒来,所以没有人来“接”子进程,所以它就变成了僵尸。

Linux中的进程是什么?

可以使用kill命令终止正常进程。kill命令有几个兄弟,例如pkill和killall,尽管它们的名称中都有kill字,但它们实际上是用来向一个或多个进程发送信号的。

如果不指定,这些命令默认发送SIGTERM信号。

正常进程可以被杀死,但是僵尸进程不能。为什么?因为僵尸进程本身死了一次!如果你能再死一次,“僵尸”这个名字就没有多大意义了。

kill命令不能用于杀死僵尸进程,因为它已经是一个正在退出的进程。僵尸进程的罪魁祸首是父进程不回收它的资源,所以我们可以找到一种方法让另一个进程回收它的资源,这就是init进程。

所以,我们可以杀死父进程,init会很好地拾取僵尸进程并正确地回收它,僵尸进程将被正确地处理。

例如,如果PID 5878是一个僵尸进程,它的父进程是PID 4809,那么要杀死僵尸进程(5878),你就会杀死父进程(4809):

杀死父进程时要非常小心,如果一个进程的父进程是PID 1,你杀死它,系统会重新启动!

那会是一个更可怕的故事!

本文主要介绍了关于僵尸进程怎么解决(Linux系统僵尸进程详解)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://seotea.com/article/1450634.html