- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINUX进程控制
课程内容 linux下进程的创建、终止、控制;进程间资源的继承;多进程间的通讯;守护进程。
目 录
1. Linux进程概述 1
1.1. 进程标识 2
1.2. 进程的用户ID与组ID(进程的运行身份) 2
2. 进程的创建 3
2.1. system函数 4
2.2. fork函数 4
2.3. exec函数族 5
2.4. popen函数 7
3. 进程控制与终止 8
3.1. 进程的控制 8
3.2. 进程的终止 9
4. 进程间打开文件的继承 9
4.1. 用fork继承打开的文件 9
4.2. 用exec*继承打开的文件 10
4.3. 用管道(FIFO)传递打开的文件的信息 11
5. 进程间通信(Interprocess Communication,IPC) 13
5.1. 无名管道(PIPE) 13
5.2. 命名管道(FIFO) 15
5.3. 共享内存 18
5.4. 消息队列 20
6. 守护进程(Daemon) 24
Linux进程概述
进程是程序的执行实例,它是Linux的基本调度单位。一个进程由如下元素组成:
程序的当前上下文,即程序的当前执行状态;
程序的当前执行目录
程序访问的文件和目录
程序的访问权限,比如它的文件模式和所有权
内存和其他分配给进程的系统资源
内核使用进程来控制对CPU和其他系统资源的访问,并且使用进程来决定在CPU上运行哪个程序,运行多久以及采用什么特性运行它。内核的调度器负责在所有的进程间分配CPU执行时间,称为时间片(time slice),它轮流在每个进程分得的时间片用完后从进程那里抢回控制权。
进程标识
OS会为每个进程分配一个唯一的整型ID,做为进程的标识号(pid)。进程除了自身的ID外,还有父进程ID(ppid),所有进程的祖先进程是同一个进程,它叫做init进程,ID为1,init进程是内核自举后的一个启动的进程。init进程负责引导系统、启动守护(后台)进程并且运行必要的程序。
进程的pid和ppid可以分别通过函数getpid()和getppid()获得。
示例:
#include stdio.h
#include stdlib.h
#include unistd.h
int main()
{
printf(pid:%d ppid:%d\n,getpid(),getppid());
return 0;
}
进程的用户ID与组ID(进程的运行身份)
进程在运行过程中,必须具有一类似于用户的身份,以便进行进程的权限控制,缺省情况下,哪个登录用户运行程序,该程序进程就具有该用户的身份。例如,假设当前登录用户为gotter,他运行了ls程序,则ls在运行过程中就具有gotter的身份,该ls进程的用户ID和组ID分别为gotter和gotter所属的组。这类型的ID叫做进程的真实用户ID和真实组ID。真实用户ID和真实组ID可以通过函数getuid()和getgid()获得。
与真实ID对应,进程还具有有效用户ID和有效组ID的属性,内核对进程的访问权限检查时,它检查的是进程的有效用户ID和有效组ID,而不是真实用户ID和真实组ID。缺省情况下,用户的(有效用户ID和有效组ID)与(真实用户ID和真实组ID)是相同的。有效用户id和有效组id通过函数geteuid()和getegid()获得。
示例
#include stdio.h
#include stdlib.h
#include unistd.h
int main()
{
printf(uid:%d gid:%d euid:%d egid:%d\n,
getuid(),getgid(),geteuid(),getegid());
return 0;
}
开始时登录用户为ghaha(uid为500):
shellid
uid=500(ghaha) gid=500(ghaha) groups=500(ghaha)
编译生成可执行文件a.out,程序文件的属性可能为:
-rwxrwxr-x 1 ghaha ghaha 12132 Oct 7 09:26 a.out
执行结果可能为:
shella.out
uid:500 gid:500 euid:500 egid:500
现在将a.out的所有者可执行属性改为s
shellchmod u+s a.out
shellll
-rwsrwxr-x 1 ghaha ghaha 12132 Oct 7 09:26 a.out
此时改另外一个用户gotter登录并运行程序a.out
shellid
uid=5
您可能关注的文档
- 2015年行政机关公务员考试(甘肃省)探讨.docx
- GTB停电保磁控制柜使用说明书绪论.doc
- Hibernate调优之selectnewmap绪论.doc
- 20131105听力学基础知识培训(打印稿)综述.ppt
- HSDPA培训MicrosoftWord文档绪论.doc
- HST-JS-08结构件焊接工艺通用规范绪论.doc
- HYA复合板现浇设计指南绪论.doc
- H型钢市场2005,12绪论.doc
- IBM公司JAVA程序员笔试面绪论.doc
- IC卡电水绪论.doc
- 现场演艺市场复苏与创新演出形式:2025年市场动态与趋势预测报告.docx
- 交通出行服务行业市场供需关系分析报告.docx
- 交通出行服务行业市场前景与挑战分析报告.docx
- 2025年工业互联网平台网络切片技术在工业互联网平台市场拓展与品牌建设中的应用报告.docx
- 2025年脑机接口技术在康复医疗中的伦理教育与实践指南.docx
- 交通出行服务行业市场细分领域分析报告.docx
- 金融与投资行业2025年研究报告:金融科技对传统银行业务的颠覆与转型.docx
- 2025年科技企业孵化器建设资金申请与技术创新路径报告.docx
- 2025年母婴电商行业用户购买动机分析与会员权益设计建议.docx
- 2025年跨境电商物流保险产品安全性能提升策略研究报告.docx
最近下载
- 冠心病合并房颤的抗凝抗栓策略.ppt VIP
- 副高中医护理试题及答案.docx
- 员工职业发展通道设计课程.ppt VIP
- 注册安全工程师中级其他安全生产专业实务(电气安全)模拟试卷3.pdf VIP
- VDI2230高强度螺栓连接的系统计算中文版.pdf VIP
- 汉威KB500可燃气体报警控制器使用说明书.pdf
- 2024-2030全球摩托车和机车头盔行业调研及趋势分析报告.docx
- 2024-2030全球全面式蓝牙摩托车头盔行业调研及趋势分析报告.docx
- 神木市东安煤业有限公司煤炭资源整合项目(0.60Mt_a)(重大变动)环境影响报告书.pdf VIP
- (高清版)DB11∕T 1702-2019 生活饮用水样品采集技术规范.pdf VIP
文档评论(0)