Linux 中的僵尸进程和孤儿进程
僵尸进程、孤儿进程和守护进程的详细信息如下所示
僵尸进程
僵尸进程是指执行已完成但仍在进程表中保留条目的进程。僵尸进程通常发生在子进程中,因为父进程仍然需要读取其子进程的退出状态。一旦使用 wait 系统调用完成此操作,僵尸进程就会从进程表中删除。这被称为“回收”僵尸进程。
演示僵尸进程创建和终止的图表如下所示
僵尸进程不使用任何系统资源,但它们确实保留其进程 ID。如果存在大量僵尸进程,则所有可用的进程 ID 都会被它们独占。这会阻止其他进程运行,因为没有可用的进程 ID。
孤儿进程
孤儿进程是指即使其父进程已终止或完成仍在运行的进程。进程可以有意或无意地成为孤儿。
有意创建的孤儿进程在后台运行,无需任何手动支持。这通常用于启动无限期运行的服务或在无人值守的情况下完成长时间运行的作业。
无意创建的孤儿进程是在其父进程崩溃或终止时创建的。可以使用进程组机制避免无意创建的孤儿进程。
广告