守护进程
- 是Linux这个的后台服务进程。独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们一直在运行着。
- 创建守护进程模型
1.创建子进程,父进程退出
所有工作在子进程中进行形式上脱离了控制终端
2.在子进程中创建新会话
setsid()函数
使子进程完全独立出来,脱离控制
3.改变当前目录为根目录
chdir()函数
防止占用可卸载的文件系统
也可以换成其它路径
4.重设文件权限掩码
umask()函数
防止继承的文件创建屏蔽字拒绝某些权限
增加守护进程灵活性
5.关闭文件描述符
继承的打开文件不会用到,浪费系统资源,无法卸载
6.开始执行守护进程核心工作
7.守护进程退出处理程序模型
- 编写一个守护进程。
1.创建子进程 fork,退出父进程
2.子进程创建新会话 setsid()
3.改变进程的工作目录 chdir()
4.指定文件掩码umask()
5.将0/1/2重定向/dev/null dup2()
6.守护进程主逻辑。
7.退出。。。