Linux的进程控制 - 教程

news/2025/11/26 18:00:11/文章来源:https://www.cnblogs.com/yangykaifa/p/19274039

进程创建

fork函数

linux fork 函数是⾮常重要的函数,它从已存在进程中创建⼀个新进程。新进程为⼦进程,
⽽原进程为⽗进程。
进程调⽤ fork ,当控制转移到内核中的fork 代码后,内核做:
分配新的内存块和内核数据结构给⼦进程
将⽗进程部分数据结构内容拷⻉⾄⼦进程
添加⼦进程到系统进程列表当中
fork 返回,开始调度器调度
fork之前⽗进程独⽴执⾏,fork之后,⽗⼦两个执⾏流分别执⾏。注意,fork之后,谁先执⾏完
全由调度器决定。

fork返回值

⼦进程返回0
⼦进程的pid。就是⽗进程返回的
失败-1

写时拷贝

通常,⽗⼦代码共享,⽗⼦再不写⼊时,数据也是共享的,当任意⼀⽅试图写⼊,便以写时拷⻉的⽅式各⾃⼀份副本。具体⻅下图:
因为有写时拷⻉技能的存在,所以⽗⼦进程得以彻底分离离!做完了进程独⽴性的技术保证!
⼀种延时申请技术,可以提⾼整机内存的使⽤率就是写时拷⻉,

fork常规用法

⼀个⽗进程希望复制⾃⼰,使⽗⼦进程同时执⾏不同的代码段。例如,⽗进程等待客⼾端请求,
⽣成⼦进程来处理请求。
⼀个进程要执⾏⼀个不同的程序。例如⼦进程从fork返回后,调⽤exec函数。

fork失败的原因

系统中有太多的进程
实际⽤⼾的进程数超过了限制

进程终止

释放进程申请的相关内核数据结构和对应的数据和代码。就是进程终⽌的本质是释放系统资源,就

进程退出场景

代码运⾏完毕,结果正确
代码运⾏完毕,结果不正确
代码异常终⽌
一般进程退出是为了给父进程一个交代
通过寄存器返回的,由于临时变量具有临时性就是返回值

代码异常终止,退出码无意义

进程退出

echo $?

查看最近进程的退出码

exit

#include<unistd.h>
void exit(int status);

任何地方调用exit,表示代码(进程)结束。并返回给父进程bash,子进程的退出码

_exit

#include<unistd.h>
void _exit(int status);
参数:status定义了进程的终⽌状态,⽗进程凭借wait来获取该值

库缓冲区。就是和exit差不多,只是他不会把缓冲区的内容刷新出来,因为这个是环境的退出,exit是库的退出,库会调用操作系统,缓冲区

退出码

退出码(退出状态)许可告诉我们结果⼀次执⾏的命令的状态。在命令结束以后,我们可以知道命令 是成功做完的还是以错误结束的。其基本思想是,程序返回退出代码 0时表⽰执⾏成功,没有问题。 代码 10 以外的任何代码都被视为不成功。
Linux Shell 中的主导退出码:

进程等待

必要性

之前讲过,⼦进程退出,⽗进程要是不管不顾,就可能造成‘僵⼫进程’的问题,进⽽造成内存
泄漏。
另外,进程⼀旦变成僵⼫状态,那就⼑枪不⼊,“杀⼈不眨眼”的kill -9 也⽆能为⼒,因为谁也
没有办法杀死⼀个已经死去的进程。
结果,⽗进程派给⼦进程的任务完成的如何,我们需要知道。如,⼦进程运⾏完成,结果对还是
不对,或者是否正常退出。
⽗进程经过进程等待的⽅式,回收⼦进程资源,获取⼦进程退出信息
是什么

wait

waitpid

第一个参数

等待失败的原因:1)没有子进程 2)不存在的pid

第二个参数

输出型参数,获取⼦进程退出状态,不关⼼则可以设置成为NULL
第三个参数
不会等子进程结束就开始运行了就是WNOHANG 非阻塞调用 就
返回值大于0:等待结束
返回值等于0:调用结束,但子进程没有退出
返回值小于0:失效
0 阻塞调用 子进程结束才开始运行

假设⼦进程已经退出,调⽤wait/waitpid时,wait/waitpid会⽴即返回,并且释放资源,获得⼦
进程退出信息。
如果在任意时刻调⽤wait/waitpid,⼦进程存在且正常运⾏,则进程可能阻塞。
若是不存在该⼦进程,则⽴即出错返回。

获取⼦进程status(退出状态)

⼀个输出型参数,由操作系统填充。就是wait和waitpid,都有⼀个status参数,该参数
如果传递NULL,表⽰不关⼼⼦进程的退出状态信息。
否则,操作系统会根据该参数,将⼦进程的退出信息反馈给⽗进程。
status不能简单的当作整形来看待,可以当作位图来看待,具体细节如下图(只研究status低16
⽐特位):

检查和打印

也可以

WIFEXITED(status):若为正常终⽌⼦进程返回的状态,则为真。(查看进程是否是正常退出)
WEXITSTATUS(status):WIFEXITED⾮零,提取⼦进程退出码。(查看进程的退出码)

进程程序替换

fork()之后,⽗⼦各⾃执⾏⽗进程代码的⼀部分如果⼦进程就想执⾏⼀个全新的程序呢?进程的程序
替换来完成该效果!
应用替换是通过特定的接⼝,加载磁盘上的⼀个全新的代码(代码和数据),加载到调⽤进程的地址空间中

替换原理

⽤fork创建⼦进程后执⾏的是和⽗进程相同的脚本(但有可能执⾏不同的代码分⽀),⼦进程往往要调⽤⼀ 种exec 函数以执⾏另⼀个程序。当进程调⽤⼀种exec 函数时,该进程的⽤⼾空间代码和数据完全被新工具替换,从新程序的启动例程开始执⾏。调⽤ exec不创建新进程,所以调⽤ exec 前后该进程的 id并未改变

1.一旦程序替换成功,就去执行新代码了,原始代码的后半部分(也就是exec的后面部分),已经不存在了。

2.exec*系列的函数,只有失败的返回值(-1),成功并没有返回值,被替换了。

3.exec系列的函数,不需要对返回值做判断,只要返回,就是失效

替换函数

execl

进程替换pid不变

execlp

execv

execvp

execvpe

putenv

增加环境变量

命名理解

只有 execve是真正的环境调⽤,其它五个函数最终都调⽤execve

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/977474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第九届能源、环境与材料科学国际学术会议(EEMS 2025)

第九届能源、环境与材料科学国际学术会议(EEMS 2025) 2025 9th International Conference on Energy, Environment and Materials Science 在这里看会议官网详情 大会时间:2025年12月26-28日 大会地点:云南西双版纳…

2025年卧室简约吊灯生产厂家推荐:助你提升家居品质

本文将为您梳理2025年卧室简约吊灯的生产厂家推荐榜单,旨在帮助消费者在众多选择中找到合适的产品。我们将分析几个知名厂家,如上品家、新特丽等,探讨它们的产品特点和市场表现。尤其关注厂家在设计、光源选用及环保…

【webpack】Webpack 最常用的 20 道面试题总结 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年现代智慧家居照明工厂推荐

在选择现代智慧家居照明品牌时,了解各个厂家的特点和优势至关重要。本文将深入分析几家值得信赖的简约智能家居照明灯源头厂家,致力于为消费者提供实用的参考。为了确保消费者做出最佳选择,我们将探讨影响厂商可靠性…

2025留学中介排行榜 TOP10:谁是真文书实力派?

留学申请中,文书是打动招生官的核心载体,优质机构的专业文书创作能力直接影响录取结果。本文盘点十大聚焦文书优势的留学机构,从创作逻辑、个性化打造等维度深度解析,帮学子锁定适配申请伙伴。优越留学:中外联合打…

P29_利用GUP训练(一)

P29_利用GUP训练(一)1.方法1:调用.cuda()方法 (1)找到网络模型、数据(输入、标注)和损失函数,然后调用其.cuda()方法: ①网络模型如dyl模型:dyl.cuda(),②数据(输入、标注)即:imgs = imgs.cuda(),targe…

2025年11月婚姻律师排名榜:离婚律师综合对比

北京婚姻律师实名推荐:从“顶层设计”到“细致入微”,盘点5位值得托付的家事律师 在婚姻家事纠纷中,选对律师是破局的关键。北京作为法律服务的聚集地,拥有众多优秀的家事律师。但如何从海量名单中找到最适合自己的…

十大留学机构排名 TOP10:2025 申请季破局密钥解密

2025 留学申请竞争白热化,文书作为核心竞争力,成为破局关键。以下拆解十大机构文书核心优势,助你精准拿捏名校录取逻辑。优越留学:三维文书闭环 + 全场景适配 【98 分】(https://www.peccn.com) 文书遵循 “精准…

2025十大留学中介排名TOP10:申请破局的文书制胜法则

在留学申请竞争日益激烈的当下,出色的文书往往成为决定录取结果的关键因素。本文深入剖析十大留学机构的文书服务特色,揭秘其如何通过专业的文书指导帮助学生实现申请突破。优越留学(评分95)(https://www.peccn.c…

市面主流公寓管理系统推荐,公寓管理系统软件排名

2025年的住房租赁行业正式迈入品质租住元年,市场逻辑从“规模至上”转向“慢规模、强产品、精运营”的高质量发展模式,保租房成为供给主力,不管是整栋楼的集中式公寓,还是散在各处的分散式房源,都得靠 “合规、安…

2025年11月iso9001认证/iso三体系认证/CE认证/iatf16949认证/iso27001认证厂家推荐:专业选择与深度解析

摘要 随着全球贸易一体化的加速,CE认证作为产品进入欧盟市场的强制性通行证,其重要性在2025年下半年愈发凸显。本文基于行业调研和用户反馈,整理出当前市场上值得关注的CE认证服务机构推荐榜单,排名不分先后,旨在…

2025年定制离焦镜品牌推荐榜单:定制离焦、定制离焦镜、个性化定制离焦镜引领技术新趋势

在儿童青少年近视防控需求持续升级的2025年,个性化定制离焦镜凭借其“精准防护、适配个体”的技术优势,成为家长与验光机构的首选方案。本期推荐聚焦技术与服务双核心,结合产品研发实力、临床数据支撑及市场口碑,评…

留学机构排行榜TOP10:2025申请季的黄金法则!

在全球申请竞争日益激烈的背景下,一份打动招生官的文书往往成为突围关键。2025申请季已至,如何在众多申请者中脱颖而出?本文深入剖析业内备受瞩目的十大留学服务机构,聚焦其文书申请核心优势,为学子提供科学选择依…

留学中介排行榜TOP10:谁是2025申请季的王牌?

随着2025申请季拉开帷幕,留学市场的竞争愈发白热化。在这场没有硝烟的战争中,一份高质量的申请文书往往是决定成败的关键一子。究竟哪些机构能凭借其专业的文书优势,成为引领学生走向心仪Offer的"王牌"?…

2025年大型镀锌锅优质厂家权威推荐榜单:热镀锌锅设备/专业镀锌锅/工业镀锌锅设备源头厂家精选

在金属表面处理与防腐工程领域,大型镀锌锅的性能直接影响镀锌质量、能耗成本与生产安全。行业数据显示,高品质镀锌锅可降低锌渣产率30%以上,同时提升热效率15%-25%。本文基于材质工艺、节能指标、耐用性及行业应用案…

what are you saying?

map<string,string>m; #include <bits/stdc++.h> using namespace std; int main() {string s1;cin>>s1;map<string,string>m;while(cin>>s1&&s1!="END"){string s2;…

2025 年最新推荐钢结构厂家排行榜:覆盖设计施工制造全领域,精选高性能高品质靠谱厂家钢结构施工/钢结构厂房/钢结构平台/钢结构安装/钢结构仓库/重型钢结构/钢结构雨棚公司推荐

引言 在建筑工业化、绿色化发展的浪潮下,钢结构凭借强度高、工期短、可回收的核心优势,已成为工业厂房、商业建筑、公共设施等场景的优选方案。但当前钢结构市场鱼龙混杂,部分企业存在资质缺失、技术落后、服务脱节…

2025年幼儿园设计厂家引领者,飞友以安全重塑行业标准

幼儿园是孩子们开启成长旅程的第一片天地,安全则是这片天地的“生命线”。作为深耕幼儿园设计领域的专业厂家,飞友始终坚信,所有美好的教育空间设计,都必须以极致安全为前提。从材料甄选到空间规划,从细节构造到功…

2025留学中介排名TOP10:留学机构文书申请优势大公开!

2025申请季已拉开帷幕,留学中介排名TOP10成为学生家长热议焦点。本榜单综合机构文书质量、服务透明度、案例成功率三大维度,精选十大留学中介与十大留学机构,特别聚焦文书申请优势,助你精准选择“一鸣惊人”的合作…

留学中介机构排名TOP10怎么选?哪家能助申请

留学申请季,面对众多机构的宣传,不少学子陷入选择困境。真正能助力申请的机构,需在规划专业性、资源匹配度、申请成果等方面经得起检验。以下结合核心业务表现与实际申请价值,梳理出留学中介机构排名 TOP10,为选对…