守护进程
什么是守护进程?《UNIX环境高级编程》指出属于生存期长的一种进程,系统级别就有许多进程进行内核级别操作或者交互操作需要设置为守护进程,暂且不论。
如果我们意图使服务器一直运行,则需要我们的守护进程
客户进程-服务器进程模型,在服务器模型中,fork然后exec一个程序来向客户服务是常见的行为,这样我们的守护进程可以让守护进程的子进程打开文件描述符(fork时会继承父进程(守护进程)的文件描述符)。
ps -axj命令可以打印到标准输出:
用户ID,进程ID,符进程ID,回话ID,终端名称,命令字符串
由于守护进程不受终端控制,故显示?
守护进程有一套编写规则,网上枚举很多,我结合书中和代码总结一下:
A:umask(0),意图给予守护进程高权限,不被权限影响,重设文件权限掩码
B:fork(),并关闭父进程
C:set