守护进程的出错处理

守护进程的出错处理

由于守护进程完全脱离了控制终端,因此,不能像其他程序一样通过输出错误信息到控制台的方式来通知程序员。

通常的办法是使用 syslog 服务,将出错信息输入到 “/var/log/message” 系统日志文件中去。

Syslog linux 中的系统日志管理服务通过守护进程 syslog 来维护。

syslog 函数说明

Openlog 函数用于打开系统日志服务的一个连接;

Syslog 函数用于向日志文件中写入消息,在这里可以规定消息的优先级、消息的输出格式等;

Closelog 函数用于关闭系统日志服务的连接。

 

syslog 函数格式

1 openlog 函数

#include <syslog.h>

void openlog(char * ident , int option ,                                int facility ) ;

Ident 要向每个消息加入的字符串,通常为程序的名称;

option 参数:

n  LOG_CONS 若日志消息不能通过发送至 syslogd ,则将该消息写至控制台;

n  LOG_NDELAY 立即打开 UNIX 域数据报套接口至 syslsgd 守护进程。通常,在记录第一条消息之前,该套接口不打开。

n  LOG_PERROR :除将日志消息发送给 syslog 外,还将它写至标准出错( stderr )。

n  LOG_PID :每条消息都包含进程 ID ,此选择项可供对每个请求都 fork 一个子进程的守护进程使用。

openlog facility 参数

n  LOG_AUTH 授权程序 : login.su,getty,

n  LOG_CRONcron at

n  LOG_DAEMON 系统守护进程: ftpd,routed,

n  LOG_KERN 内核产生的消息

n  LOG_LOCAL0 保留由本地使用

n  LOG_LPR 行打系统: lpd, lpc,

n  LOG_MAIL 邮件系统

n  LOG_NEWSU senet 网络新闻系统

n  LOG_SYSLOG syslogd 守护进程本身

n  LOG_USER 来自其他用户进程的消息

n  LOG_UUCP UUCP 系统

syslog 函数

include <syslog.h>

void syslog(int priority , char *format , ...);

Priority 选项(消息优先级)

n  LOG_EMERG 紧急 ( 系统不可使用 ) ( 最高优先级 )

n  LOG_ALERT 必须立即修复的条件

n  LOG_CRIT 临界条件 ( 例如,硬设备出错 )

n  LOG_ERR 出错条件

n  LOG_WARNING 警告条件

n  LOG_NOTICE 正常,但重要的条件

n  LOG_INFO 信息性消息

n  LOG_DEBUG 调试排错消息 ( 最低优先级 )

closelog 函数

#include <syslog.h>

void closelog(void);

守护进程日志系统见例: syslog_dema.c

zz:http://blog.csdn.net/zccst/archive/2009/11/19/4836817.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值