一、什么是守护进程?
首先我们先来简单了解一下什么是守护进程,守护进程在Linux中说白了就是一个后台进程,在后台默默服务,不受终端(会话)控制,生命周期长,在系统引导装入时启动,在系统关闭时终止,并且周期性的执行某种任务或等待处理某种事件。
如果想让某个进程不因为用户或终端或其他变化而受影响,也就是说,在如果一个进程不想因为切换用户或者关闭终端的时候结束该进程,那就可以把这个进程变为一个守护进程。
二、守护进程的创建
步骤如下:
1. 创建子进程2,结束父进程1
2. 设置当前子进程2为一个终端(会话)
3. 创建子进程3,结束父进程2
此时,子进程3已经勉强算是守护进程了,但我们还需要彻底切断子进程和用户之间的联系,即重定向标准输入、标准输出、标准错误输出到设备文件 /dev/null 里。
4. 关闭所有文件描述符,节省资源,减小守护进程的内存大小
5. 改变执行目录,将执行目录切换到根目录下
6. 修改权限掩码umask
7. 将标准输入、标准输出、标准错误输出重定向到 /dev/null
代码如下:
#include