Linux deamon函数



守护进程是生存期长的一种进程,因为他没有控制终端,所以说他们是在后台运行的。

调用daemon()函数将该进程设置为一个守护进程。


  1. 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




Linux deamon函数

在该程序中首先调用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。