什么是守护进程
守护进程也称精灵进程(Daemon),是运⾏在后台的⼀种特殊进程。它独⽴于控制终端并且周期性地执⾏某种任务或等待处理某些发⽣的事件。守护进程是⼀种很有⽤的进程。 Linux的⼤多数服务器就是⽤守护进程实现的。⽐如, ftp服务器, ssh服务器, Web服务器httpd等。同时,守护进程完成许多系统任务。⽐如,作业规划进程crond等。
Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端,不能直接和⽤户交互。其它进程都是在⽤户登录或运⾏程序时创建,在运⾏结束或⽤户注销时终⽌,但系统服务进程(守护进程)不受⽤户登录注销的影响,它们⼀直在运⾏着。这种进程有⼀个名称叫守护进程(Daemon)。
守护进程有如下几个特点:
- 独立于控制终端,不与任何终端建立联系
- 不受用户的登陆注销的影响
- 运行在后台
守护进程的“进化史”
在这里插入图片描述
代码实现
//守护进程进化史:
//1.创建一个孤儿进程
//2.在孤儿进程内创建一个新会话
//3.修改默认工作路径为"/"
//4.重定向文件描述符到"/dev/null"
//5.设置文件的默认权限掩码
//6.确保自身不是会话首进程,从而不和任何终端建立联系
//7,成功逆袭成为守护进程
#include<iostream>
#include<unistd.h>
#include<stdlib.h>
#include<error.h>
#include<fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
void MyD