1.守护进程的特点
后台服务进程
独立于控制终端
周期性执行某任务
不受用户登录注销影响
一般采用以d结尾的名字(服务)
2.进程组
进程的组长
- 组里边的第一进程
- 进程组的ID==进程中的组长的ID
进程中组长的选择
- 进程中的第一个进程
进程组ID的设定
- 进程组的ID就是组长的进程ID
3.会话
创建一个会话注意事项
- 不能是进程组长
- 创建会话的进程成为新进程组的组长
- 有些llnux版本需要root权限执行此操作
- 创建出的新会话会丢弃原有的控制终端
- 一般步骤;fork, 父亲死,儿子执行创建会话操作(setsid)
获取进程所属的会话ID pid_t getsid(pid_t pid);
创建一个会话 pid_t setid(void);
4.创建守护进程模型
fork子进程,父进程退出(必须)
子进程创建新会话(必须) setsid();
改变当前工作目录chdir(不是必须的) U盘,./a.out
重设文件拖码
- 子进程会继承队进程的掩码
- 增加子进程程序操作的灵活性
- umask(0);
- 不是必须的
关闭文件描述符
- close(0)
- close(1)
- close(2)
- 释放占用资源
- 不是必须的
执行核心工作(必须的)