Linux_UNIX编程手册-读书笔记-第三十七章(DAEMON)

37.1 概述

daemon是一种具备以下特征的进程:

  • 它的生命周期很长。通常,一个daemon会在系统启动的时候被创建并一直运行至系统被关闭.
  • 它在后台运行并且不拥有控制终端。控制终端的确实确保了内核永远不会为daemon自动生成任何任务控制信号以及终端相关的信号。

daemon是用来执行特殊任务的,如下面的示例所示。
cron:一个在规定时间执行命令的daemon.
sshd:安全shell daemon,允许在远程主机上使用一个安全的通信协议登陆系统。
httpd:HTTP服务器daemon,它用于服务web页面。
inetd:internet超级服务器daemon,它监听从指定的TCP/IP端口上进入的网络连接并启动相应的服务器程序来处理这些连接。

37.2 创建一个daemon

becomeDaemon()函数将调用者变成一个daemon.
在这里插入图片描述
flags:位掩码参数,它允许调用者有选择地执行其中的步骤:
在这里插入图片描述

37.3 编写daemon指南

由于daemon是长时间运行的,因此要特别小心潜在的内存泄漏问题和文件描述符泄露。如果此类bug影响到了daemon的运行,那么唯一的解决方案是杀死他,之后再重新启动它。

37.4 使用SIGHUP重新初始化一个daemon

由于很多daemon需要持续运行,因此在设计daemon程序时需要克服一些障碍。
在这里插入图片描述
解决方案:
让daemon为SIGHUP建立一个处理器。由于daemon没有控制终端,所以内核永远不会向daemon发送这个信号。
因此可以通过该信号来通知daemon进程进行一些操作。

37.5 使用syslog记录消息和错误

概述:
syslog工具提供了一个集中式日志工具,系统中的所有应用程序都可以使用这个工具来记录日志消息。在这里插入图片描述
syslog API

建立一个到系统日志的连接:
在这里插入图片描述
ident: 字符串指针,通常是程序名,syslog()输出的每条消息都会包含这个字符串。
log_options: 位掩码,是下面几个常量的OR值。
在这里插入图片描述
在这里插入图片描述
facility:
在这里插入图片描述

记录一条日志消息:
在这里插入图片描述
priority:是facility和level的OR值。在这里插入图片描述

关闭日志:
在这里插入图片描述

过滤日志消息:
在这里插入图片描述
该函数设置了一个能过滤由syslog()写入的消息的掩码。 使用方法:
在这里插入图片描述 或者
在这里插入图片描述

//etc/syslog.conf 文件
该配置文件控制syslogd daemon的操作。
示例:
在这里插入图片描述
每次修改syslog.conf文件之后都需要使用下面的方式让daemon根据这个文件重新初始化自身。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值