13.3编程规则
1)umask将文件模式创建屏蔽字设置为0.
2)调用fork,然后使父进程退出。
3)调用setsid以创建一个新会话。
4)将当前工作目录更改为根目录。
5)关闭不再需要的文件描述符。
6)某些守护进程打开/dev/null使其具有文件描述符0,1,2
-----------------------------------------------------------------
13.4出错记录
三种方法产生日志消息
1)内核例程可以调用log函数
2)大多数守护进程调用syslog(3)函数以产生日志消息。
3)在此主机上的一个用户进程,伙同过tcp/ip网络链接到此主机得起它主机上的一个用户进程可将日志消息发向udp端口514
syslog设施函数
void openlog(const char *ident, int option, int facility)
void syslog(int priority, const char * format,...)
void closelog(void)
int setlogmask(int maskpri)
----------------------------------------------------------
13.5单实例守护进程
13.6守护进程的惯例
1)若守护进程使用锁文件,那么该文件通常存放在/var/run目录中。
2)若守护进程支持配置选项,那么配置文件通常存放在/etc目录中。
3)守护进程可用命令行启动,但通常它们是由系统初始化脚本之一/etc/rc*或/etc/init.d/*启动。如果终止时,需自动重新启动,可在/etc/inittab中为该守护进程包括_respawn记录项,这样init就将重启动该守护进程。
4)若一守护进程有一配置文件,那么当该守护进程启动时,它读该文件,但在此致后一般就不会再查看它。