Linux deamon函数
守护进程是生存期长的一种进程,因为他没有控制终端,所以说他们是在后台运行的。
调用daemon()函数将该进程设置为一个守护进程。
-
int daemon(int nochdir ,int noclose)
返回值:
参数:
当 nochdir为零时,当前目录变为根目录,否则不变;#include <unistd.h> int daemon(int nochdir, int noclose);
当 noclose为零时,标准输入、标准输出和错误输出重导向为/dev/null,也就是不输出任何信 息,否则照样输出。
deamon()调用了fork(),如果fork成功,那么父进程就调用_exit(2)退出,所以看到的错误信息 全部是子进程产生的。如果成功函数返回0,否则返回-1并设置errno。
在该程序中首先调用daemon函数进程设置为保护进程:
openlog() 函数的作用是打开一个日志连接
void syslog(int priority, const char *message, arguments...)
syslog() 函数向日志设备(日志工具 facility)发送日志消息。
每一个消息都有一个 priority(优先级) 参数,这个参数由一个“危险系数”(severity level)和一个程序标识码(facility value)相或(OR)得来。
由于syslog 设置的是*的通知方式 ,所以所有的终端都会收到提示,所以在程序运时前会在屏幕打印log内的记录
int syslog(int priority, string message);
该函数将 message 字符串写到系统纪录中,参数 priority 的值可能为
LOG_EMERG、
LOG_ALERT、
LOG_CRIT、 //以上三个值属于高级的通知方式 ,会通知到每一个终端,一般紧急情况下就会使用该三种方式。
LOG_ERR、
LOG_WARNING、
LOG_NOTICE、
LOG_INFO、
LOG_DEBUG。