1.守护进程概念
守护进程(Daemon进程)是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统启动时开始执行,在系统关闭时终止。Linux中很多系统服务都是通过守护进程实现的。
2.编写守护进程
创建守护进程流程图如下所示。
![](https://img-blog.csdnimg.cn/e274444bb562494789f6680e6a308f9e.png)
编写守护进程分为5个步骤:
(1)创建子进程,父进程退出
这是编写守护进程的第一步。由于父进程先于子进程退出,子进程会由于没有父进程而变成孤儿进程。在Linux系统中,每当系统发现一个孤儿进程,就会自动由1号进程(也就是init进程)收养他,这样,子进程就会变成init进程的子进程了。
(2)在子进程中创建新会话
使用setsid()函数创建一个新的会话,并担任该会话组的组长。
会话组:一个或多个进程组的集合。通常,一个会话开始于用户登录,终止与用户退出;或者说是开始于终端打开,终止与终端关闭。会话期的第一个进程称为会话组的组长。在此期间该用户运行的所有进程都属于这个会话期。
调用setsi