码迷,mamicode.com
首页 > Web开发 > 详细

UNP学习第13章 守护进程和inetd超级服务器

时间:2018-03-02 23:17:04      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:var   读取   option   处理   nbsp   cos   初始化   格式   message   

Unix系统中的syslogd守护进程通常由某个系统初始化脚本启动,而且在系统工作期间一直运行。

源自Berkeley的syslogd实现在启动时执行以下步骤。

(1)读取配置文件。通常为/etc/syslog.conf的配置文件指定本守护进程可能收取的各种日志消息,应该如何处理。

(2)创建一个Unix域数据报套接字,给它捆绑路径名/var/run/log

(3)创建一个UDP套接字,给它捆绑端口514。

(4)打开路径名/dev/klog。

 

一、syslog函数

#include <syslog.h>

void syslog(int prioriry, const char *message, ...);
priority:级别level和设施facility两者的组合
message参数类似printf的格式串,不过增加了%m,它将被替换成与当前errno值对应的出错消息。

日志消息的level可以是0~7,他们按从高到低的顺序排列的。如果发送者未指定level值,那就默认为LOG_NOTICE。

技术分享图片

日志消息包含一个用于标识消息发送进程类型的facility。默认LOG_USER

技术分享图片

举例来说,当rename意外失败时,守护进程可以执行以下调用:

syslog(LOG_INFO|LOG_LOCAL2, "rename(%s, %s):%m", file1, file2);

 

#include <syslog.h>

void openlog(cosnt char *ident, int options, int facility);
void closelog(void);
ident:有syslog关于每个日志消息之前的字符串。通常的值是程序名
options:一个或多个常值的逻辑或构成
facility:

 options的参数

技术分享图片

 

UNP学习第13章 守护进程和inetd超级服务器

标签:var   读取   option   处理   nbsp   cos   初始化   格式   message   

原文地址:https://www.cnblogs.com/ch122633/p/8495227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!