UNIX高级编程-守护进程

第13章守护进程

13.1 守护进程概念

在系统自举时启动,仅在系统关闭时终止。,由于没有控制终端,所以可以说是在后台运行

 

13.2 常见的守护进程

1)内核进程(pid=0)存在整个系统生命周期,超级用户特权运行,无控制终端,无命令行

2)init进程(pid=1)负责启动各运行层次特定的系统服务

3)keventd进程负责为内核中运行计划执行的函数提供进程上下文。

4)bdflush和kupdated进程将高速缓存中的数据冲洗到磁盘上

5)portmap进程RPC(远程过程调用)程序号映射为网络端口号的服务

6)inetd进程侦听系统网络接口,取得来自网络对各种网络服务进程的请求

7)cron进程在制定日期和时间执行制定的命令

 

13.3 编写守护进程的基本规则

1)调用umask将文件模式创建屏蔽字设置为0

2)调用fork,使父进程退出(exit)

3)调用setsid创建新的会话

4)将当前工作目录更改为根目录

5)关闭不在需要的文件描述符

6)某些守护进程打开/dev/null使其具有文件描述符0、1、2

 

13.4 出错记录(syslogd)

UNIX产生日志消息的三种方式:

1) 内核例程调用log函数

2) 守护进程调用syslog(3)函数产生日志消息

3) 主机用户进程或者通过TCVP/IP网络连接到此主机的其他主机上的一个用户进程将日志消息发送到UDP端口514

Syslog守护进程会读取这三种格式的日志信息,并在启动时加载配置文件/etc/syslog.conf

void openlog(const char *ident,intoption,int facility);

ident:指定加至每则日志消息中

option:指定位屏蔽

facility:可以让配置文件说明,来自不同设施的消息将以不同方式处理

void syslog(int priority,const char *format);//产生一个日志消息

priority:是facility和level的组合

format格式化出错消息字符串

setlogmask:设置记录优先级屏蔽字

 

13.5守护进程惯例

1)守护进程使用锁文件,文件放在/var/run

2)配置文件放在/etc

3)守护进程可用命令行启动

4)当守护进程启动时会读取配置文件,一旦修改配置文件,则守护进程需要被停止,然后重新启动

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值