Daemon进程创建过程

来源:互联网 发布:全国房地产数据公司 编辑:程序博客网 时间:2024/05/01 23:44

Daemon创建过程:
1、fork,创建子进程。退出父进程。
2、setsid,如果当前进程不是他所在进程组的组长,则创建新进程组、创建新会话,成为新进程组的组长、新会话期的组长。脱离原会话、进程组、控制终端。(此时,其所在进程组和会话组中都只有这个一个进程。)
再次fork,与终端完全脱离。第二次fork的意义????
3、chdir,让根目录 ”/” 成为子进程的工作目录;或“/tmp”等目录。脱离原工作目录,使其可卸载。
4、umask,重设默认文件权限。文件权限掩码设置为0,可恢复所有默认权限。
5、close,关闭不需要的文件描述符(stdin,stdout,stderr等)。

6、signal,处理守护进程退出。设置处理kill操作导致的SIGTERM信号的handler。保障正常退出。


进程组是进程的集合。
会话期是进程组的集合。