一. 守护进程
守护进程又称为精灵(Daemon)进程,顾名思义,守护是一直会存在的,它是运行在后台的一种特殊的进程,独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。比如当Linux系统启动的时候会启动一些系统服务进程,因为这些进程没有控制终端因此不能直接和用户进行交互,它的生命周期随系统,而不是像用户登录或者运行程序才开始启动的而进程运行完毕或者用户注销后就终止,这种进程就称之为守护进程或者精灵进程。
可以在终端下查看系统中的守护进程,这些进程通常以精灵的单词Daemon的首字母d结尾:
从上面可以看到,大多数进程的进程ID号、进程组ID和会话ID都是同一个ID号,而其控制终端TTY是没有的,因此,守护进程有如下特点:
守护进程自成进程组并且自成会话,也就是守护进程所在的进程组和会话中只有自身一个进程;
守护进程不与终端设备关联;
二. 创建守护进程
我们可以自己利用守护进程的特点创建一个守护进程,而使用到的函数是setsid函数:
该函数的参数为空,返回值是pid_t也就是调用该函数的进程ID号;
setsid函数调用有如下三个特点:
新创建出一个会话并且调用函数进程为会