UNIX精进:编程规则与精灵进程实践
需积分: 11 113 浏览量
更新于2024-08-06
收藏 18.16MB PDF 举报
"编程规则-鸿鹄论坛_华为认证h35-211-hcnp-access network题库"
本文档主要介绍了在UNIX环境编程时,尤其是编写守护进程(精灵进程)时应遵循的一些基本规则。守护进程是一种长期运行在后台,独立于控制终端的进程,常用于提供系统服务。以下是对这些规则的详细解释:
1. **调用fork并退出父进程**:
当创建守护进程时,首先通过调用`fork()`创建子进程,然后父进程退出。这确保了shell认为命令已完成执行,同时子进程继承了父进程的进程组ID但拥有新的进程ID,防止它成为进程组首进程,这对于后续调用`setsid`是必要的。
2. **调用setsid创建新会话**:
使用`setsid`函数,进程成为新会话的首进程、新进程组的首进程,并且失去对控制终端的关联。在某些UNIX系统(如SVR4)中,为了进一步确保守护进程不获取控制终端,可能会再次调用`fork`并让父进程退出。
3. **改变当前工作目录为根目录**:
守护进程应将当前工作目录更改为根目录`/`,避免依赖于可卸载的文件系统。如果守护进程需要在特定位置工作,比如行式打印机假脱机进程的工作目录通常会更改为它们的spool目录。
4. **设置文件创建屏蔽字为0**:
文件创建屏蔽字会影响新创建文件的权限。守护进程应设置文件创建屏蔽字为0,避免因继承的屏蔽字而拒绝设置某些权限,如组可读、写等。
5. **关闭不必要的文件描述符**:
守护进程应关闭不再需要的文件描述符,通常包括从父进程(可能是shell或其他进程)继承的描述符。具体关闭哪些描述符取决于守护进程的具体需求。
除了守护进程编程规则,文档还提到了UNIX基础知识,如登录、文件和目录、输入输出、进程和进程控制、C语言标准、错误处理、用户标识、信号、时间值、系统调用和库函数等。此外,还讨论了UNIX的标准化过程(如ANSI C、IEEE POSIX、X/Open XPG3、FIPS 151-1),以及不同UNIX实现之间的差异和限制。
这些知识对于理解UNIX环境下的高级编程至关重要,特别是对于系统服务的开发者和维护者来说,掌握这些规则能够确保守护进程稳定、安全地运行。
2018-03-13 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
陆鲁
- 粉丝: 26
- 资源: 3905
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践