码迷,mamicode.com
首页 > 系统相关 > 详细

APUE:守护进程

时间:2017-05-27 00:44:43      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:ken   sighup   error   system   ...   ati   nal   sigma   响应   

  1. 重置文件屏蔽字 umask(0)
  2. fork(),父进程 exit(0) 以响应启动者
  3. setsid(),断开所有控制终端
  4. 修改工作目录为 /
  5. 关闭文件描述符
  6. 将 0、1、2 重定位到 /dev/null
  7. 检测是否已经存在相同的守护进程正在运行,对 /var/run/xxxd.pid 进行 lockfile()
  8. 恢复 SIGHUP 的信号处理程序为默认 SIG_DFL
  9. 主线程调用 pthread_sigmask() 屏蔽所有信号
  10. 开新线程,使用 sigwait() 等待信号,遇到 SIGHUP 重读配置文件,遇到 SIGTERM 终止
  11. 主线程完成其他工作

 

写入日志:

#define	LOG_EMERG	0	/* system is unusable */
#define	LOG_ALERT	1	/* action must be taken immediately */
#define	LOG_CRIT	2	/* critical conditions */
#define	LOG_ERR		3	/* error conditions */
#define	LOG_WARNING	4	/* warning conditions */
#define	LOG_NOTICE	5	/* normal but significant condition */
#define	LOG_INFO	6	/* informational */
#define	LOG_DEBUG	7	/* debug-level messages */

int syslog (int __pri, const char *__fmt, ...);

 

APUE:守护进程

标签:ken   sighup   error   system   ...   ati   nal   sigma   响应   

原文地址:http://www.cnblogs.com/mfmans/p/6910705.html

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