守护进程性质
1.属于后台服务进程
2.独立于控制终端
3.周期性执行某任务
4.不受登录用户注销影响
5.一般采用以d结尾的名字
进程组
组长:组里边的第一进程
进程组ID == 进程组组长的ID
会话(多个进程组)
创建会话的注意事项:
1.不能是进程组长创建
2.创建会话的进程成为新进程组的组长
3.创建出的会话会抛弃原有的控制终端
4.一般步骤:fork(),父进程死,子进程创建会话
获取进程所属会话的ID:
pid_t getsid(pid_t pid);
创建一个会话:
pid_t setsid(void);
创建守护进程的模型
1.fork子进程,父进程退出(必要)
2.子进程创建新会话(必要)
setsid();
3.改变当前工作目录chdir
4.重设文件掩码
增加子进程程序操作的灵活性
umask(0);
5.关闭文件描述符
close(0)
close(1)
close(2)
释放资源
6.执行核心工作(必要)
//setsid.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sy