尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
第56天 特殊进程
一.孤儿进程1.定义当一个进程的父进程先于它终止这个进程就会成为孤儿进程2.产生原因父进程意外崩溃、被强制终止(如kill -9)或父进程主动退出但未正确处理子进程3.特点1.失去父进程后会被系统的“祖先进程”(linux中是init或systemPID1)收养2.仍能正常运行完成自身任务后会正常终止不会占用额外资源4.影响本身是系统正常处理机制的结果无负面影响反而避免了进程成为“无主进程”例如若父进程因bug崩溃子进程被init收养后可继续提供服务二.僵尸进程1.定义进程终止后内核未释放其进程控制块(PCB)该进程状态变为Z(僵尸态)成为僵尸进程2.产生原因父进程未调用wait()或waitpid()等系统调用读取子进程的退出状态(如退出码、终止原因) 导致内核无法回收PCB3.特点已终止运行不再执行任何代码但PCB仍占用内存资源(如PID、退出状态)通过ps命令中显示状态为Z或者是Z(僵尸态)名称可能为defunct4.影响系统PID数量有限大量僵尸进程会耗尽PID资源导致新进程进行无法创建不占用用户空间的内存数据段但内核空间的PCB资源仍被占用且无法使用5.处理方式预防父进程调用wait()/waitpid()主动回收子进程状态清除kill -9无法直接杀死僵尸进程(其已终止无运行实体) 父进程未处理可终止父进程(僵尸进程被1号进程收养1号进程会定期回收其PCB)三.守护进程1.定义运行在后台的特殊进程独立于控制终端用于持续提供系统服务2.设计目的不受用户登录/注销影响长期稳定运行(如网络服务、定时任务)3.特点脱离终端无控制终端避免终端关闭导致进程终止后台运行通过ps命令查看状态通常为S(休眠)名称多以d结尾(如httpd、systemd)父进程为1号进程启动后会与原本父进程脱离被1号进程收养环境干净默认不继承终端信号工作目录通常为\文件描述符(如stdin/stdout/stderr)被关闭或重 定向到/dev/null1.守护进程创建流程1.父进程fork()后exit退出子进程成为孤儿进程被1号进程收养2.子进程调用setsid()函数创建新会话,脱离原终端控制3.调用chdir()函数改变进程的工作目录到一个不会被删除和卸载的目录下4.使用umask函数修改创建文件的掩码5.关闭所有父进程继承过来的文件描述符集合 close6.使用dup或者dup2将标准输入/标准输出/标准出错都重定向到文件中7.开启自己的服务2.setsid函数#include sys/types.h#include unistd.hpid_t setsid(void);创建一个新会话并让调用该函数的进程成为这个新会话的首进程同时也成为新进程组的组长返回值成功返回调用进程的新会话标识符失败-1重置错误码3.chdir()函数#include unistd.hint chdir(const char *path);将调用进程的当前路径修改为参数所指定的目录path 新的工作目录返回值成功0失败-1重置错误码4.umask函数#include sys/types.h#include sys/stat.hmode_t umask(mode_t mask);修改进程文件的掩码mask 新的掩码实际文件权限~mask0666实际目录权限~mask0777返回值总是成功返回之前的掩码四.区别孤儿进程Orphan Process僵尸进程Zombie Process守护进程Daemon Process定义父进程先于子进程退出子进程被1号进程收养的进程。子进程先退出父进程未调用wait/waitpid回收其PCB导致进程状态为Z的进程脱离控制终端在后台长期运行的系统服务进程如sshd,nginx产生原因父进程意外退出或主动退出未等待子进程子进程退出后父进程未调用wait/waitpid回收其退出状态程序主动调用setpid等函数创建脱离终端并后台运行进程状态正常运行状态ppid1僵尸状态标记为defunct后台运行状态无控制终端名称常以d结尾如httpd资源占用占用正常进程资源(代码/数据/PCB仅占用PCB资源PID、退出状态不占用代码段/数据段占用正常进程资源长期稳定运行危害无直接危害被1号进程正常管理大量积累会耗尽PID资源导致新进程无法创建无危害是系统正常运行的必要服务如网络服务定时任务处理方式无需手动处理1号进程会自动回收其资源父进程调用wait/waitpid主动回收终止父进程由1号进程回收。无需处理随系统启动而启动终止而终止可通过systemctl等工具管理典型场景父进程未等待子进程就退出如脚本中后台运行的子进程父进程长期运行且未处理子进程退出如服务器程序漏洞系统服务如sshd,crond,ngix
RELATED

相关推荐

VS Code 终端大升级

VS Code 终端大升级

写终端命令的时候,你有没有这种糟心体验? 敲链式命令 npm run build && node index.js,写到一半想靠终端智能提示补全后半段。结果旧版 VS Code 的终端提示功能,只能识别第一条命令,&& 后面直接“失明…

📅 2026/10/27 10:19:06
OpenClaw 本地 Agent,文件归档与网页抓取完整落地指南

OpenClaw 本地 Agent,文件归档与网页抓取完整落地指南

🔹 工具简述 OpenClaw 3.1.0 是一款备受开发者与办公从业者青睐的开源本地智能工具。它依托离线本地运行、可视化图形面板、全流程自主任务处理三大核心能力,积累了庞大的用户群体。与常规对话型 AI 产品不同,该工具能够调用电脑软硬件操作权…

📅 2026/10/27 10:19:06
现场电子签约的签名采集与上屏呈现:双人签约环节的交付复盘

现场电子签约的签名采集与上屏呈现:双人签约环节的交付复盘

一、背景与交付链路2026年10月,成都一场金融主题的试点启动仪式上,签约环节由两位代表先后在签名板上落笔,笔迹一并出现在舞台大屏上,两处签名并列定格。交付链路是四段:签名板采集笔迹、现场终端渲染、大屏输出、摄影…

📅 2026/10/27 10:19:06
MORE NEWS

更多资讯

📰

Android Gradle 依赖治理:Version Catalogs 四层协同实践

简介:本资源是一套面向Android开发者的Gradle依赖统一管理实践方案,聚焦Windows平台下的Gradle命令高效执行与工程化配置优化。针对开发者常因环境差异(如Windows下需去除./前缀)导致命令执行失败、依赖管理混乱等问题&#xff0c…

📰

大模型API成本控制与企业级解决方案优化实践

1. 大模型API价格波动对OpenClaw的财务影响分析 OpenClaw作为基于大模型API构建的解决方案,其核心成本结构直接受上游API定价策略影响。2023年第四季度以来,主流大模型提供商频繁调整API计费模式,从按token计费到混合计费(固定费用…

📰

知网与维普AIGC检测机制对比及优化策略

1. 学术查重平台AIGC检测机制深度对比 最近在学术圈和内容创作领域,关于知网和维普两大平台的AIGC(人工智能生成内容)检测严格程度的讨论越来越热。作为每天都要和论文查重打交道的从业者,我实测了这两个平台的最新检测系统&#…

📰

10款AI工具提升论文写作效率实测报告

1. 论文写作效率革命:10款AI工具实测报告 读研三年,我见过太多同学在deadline前通宵赶论文的惨状。去年帮导师整理学术工具时,我系统测试了37款AI写作辅助工具,最终筛选出这10个真正能打的开源免费神器。不同于市面上泛泛而谈的推…

📰

Ansible自动化运维:核心原理与实战技巧

1. Ansible自动化运维的核心价值 在运维工程师的日常工作中,最头疼的莫过于需要同时管理几十甚至上百台服务器。想象一下这样的场景:凌晨三点被报警叫醒,发现所有Web服务器的Nginx配置需要紧急更新。传统做法是逐台SSH登录修改,不…

📰

AI渲染庭院桌椅常见问题与专业解决方案

1. 为什么AI渲染的庭院桌椅总穿帮? 去年给客户做庭院设计方案时,我用过七八款主流AI渲染工具生成户外家具效果图,结果发现90%的AI生成的庭院桌椅都存在明显破绽。最常见的是椅腿悬浮离地3-5cm,或是桌面纹理出现超现实主义的木纹/石…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬