孤儿进程与僵尸进程
孤儿进程与僵尸子进程
孤儿进程
一个父进程退出,而它的一个或者多个子进程还在运行,那么哪些子进程将成为孤儿进程。孤儿进程将被Init(进程号为1)进程收养,并由init进程对他们完成状态收集工作。
因init进程托管孤儿进程,故其不会有什么危害
僵尸进程
一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或者waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保留在系统中。这种进程称之为僵死进程。
子进程结束后,操作系统会为其保留进程号,退出状态,运行时间等信息。直到父进程使用wait或者waitpid来读取时才释放这部分信息,如果父进程移植不来读取的话,那么这段信息将会一直保留,进程号会一直占用。系统所能使用的进程号是有限的,如果存在大量僵死进程,将可能因没有可用进程号而无法闯将新的进程
点击查看代码
#include <sys/types.h>
#include <sys/wait.h>
pid_t waitpid(pid_t pid,int *status,int options);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!