1.守护进程的特点:
(1):在后台运行,与终端无关
(2):系统启动时守护进程运行,系统关闭时守护进程停止运行
2.实现守护进程的要点:
(1):守护进程不能与终端有血缘关系(不能有父子进程,兄弟进程)
(2):守护进程没有控制终端
3.实现效果:
守护进程自成一个进程组和一个会话组(也就是说守护进程就是进程组长,就是会话组组长),守护进程的父进程只能是systemd.
4.创建守护进程的编写程序步骤:
(1):创建子进程(fork函数),推出父进程(exit函数)
作用:使子进程脱离父进程,断掉亲缘关系,此时,子进程就会被systemd所收养。故实现子进程的父进程只能是systemd.
(2):在子进程中创建新会话(setsid()函数)
作用:使子进程摆脱原进程组的控制,实现子进程成为进程组组长
使子进程摆脱原会话组的控制,实现子进程成为会话组组长
使子进程摆脱控制终端的控制,实现守护进程不受终端控制
(3):改变当前子进程的目录到根目录 (chdir()函数)
作用:实现优化守护进程,为了用户的使用方便
(4):重新设置文件权限掩码。(umask()函数)
作用:屏蔽文件权限中的对应位。
(5):关闭文件描述符。 (close()函数)
作用:实现了守护进程与终端完全无关的功能。