守护进程(精灵进程)

守护进程(daemon): 守护进程也叫精灵进程,是运行在后台的一种进程。它独立于控制终端,本身是一种孤儿进程,并且一般的守护进程都以d结尾,例如sshd。后台进程一般具有的性质是无输入输出,持久的运行着。


创建守护进程主要分六个步骤:

1、调用umask将文件模式创建屏蔽字设置为0(即新文件权限为6 6 6);

2、调用fork函数创建一个子进程,然后让父进程退出(保证子进程不是一个进程组的组长进程);

3、调用setsid创建一个新会话(setsid调用成功则会导致:1. 保证当前进程自称进程组。 2. 保证当前进程自成会话。3. 保证当前进程与终端无关);

4、将当前工作目录更改为根目录(因为除了根目录之外其他目录基本都可以被删除);

5、关闭不再需要的文件描述符(因为后台进程不需要进行输入输出);

6、忽略SIGCHLD信号(一般进程都会忽略掉这个信号);


创建守护进程的代码编写:

守护进程(精灵进程)

守护进程(精灵进程)

由上结果可知守护进程创建成功。


创建守护进程时有人fork两次是为了保证子进程不是会话首进程,从而保证后续不会再与其他终端关联。

守护进程(精灵进程)

守护进程(精灵进程)