一 概念
英文名字daemon,又名精灵进程,常在系统开机的时候加载,系统关闭的时候才终止.在windows上就是services
二 ps -axj 显示进程
-a 由其他用户拥有的进程状态
-x 显示没有控制终端的进程状态
-j 显示与作业有关的信息
三 系统daemon进程
pid 为0的进程为内核进程
pid 为1的进程为init进程
keventd守护进程,为函数执行提供上下文
kapmd守护进程高级电源管理
kswapd守护进程页面调出守护进程
bdflush守护进程 冲洗缓冲区到硬盘
kupdated守护进程 冲洗页面到硬盘
portmap端口映射守护进程 将rpc程序号映射为网络端口号的服务
syslogd 日志相关
inetd守护进程 侦听网络接口,服务于网络的请求
nfsd,lockd,rpciod守护进程提供对nfs网络文件系统的支持
cron守护进程 用于在定时执行命令
cupsd 打印假脱机进程,处理所有系统打印请求
守护进程的终端名设置为问号
四 守护进程的编程规则
1)umask设置文件屏蔽字为0,避免进程创建的文件的权限不够
2)调用fork,父进程exit退出
3)调用setsid创建一个新会话
4)将当前工作目录改为根目录
5)关闭不再需要的文件描述符
6)将文件描述符0,1,2重定向到/dev/null
五 出错处理,日志系统
1)内核可以调用log函数,然后写入到设备/dev/klog
2)用户进程调用syslog将日志消息发送到/dev/log
3)编程送往指定主机的udp514端口
4)守护进程syslogd默认读取配置文件/etc/syslog.conf
六 处理函数
openlog
syslog
closelog
setlogmask
vsyslog
七 单实例守护进程实现方法
1) 读/dev下面的设置
2) 读写文件
八 守护进程的惯例
1)守护进程下的锁文件
存放目录 /var/run
锁文件名字 name.pid
2)守护进程的配置文件
存放目录 /etc
配置文件名字 name.conf
3)启动脚本
/etc/rc*
/etc/init.d/*
4)守护进程终止时,重启该进程
/etc/inittab 加入一条记录 _respawn
5)通过接收信号SIGHUP来重新读取配置文件
九 守护进程常作为服务端程序来为客户端服务,通信的方式是unix域套接字
英文名字daemon,又名精灵进程,常在系统开机的时候加载,系统关闭的时候才终止.在windows上就是services
二 ps -axj 显示进程
-a 由其他用户拥有的进程状态
-x 显示没有控制终端的进程状态
-j 显示与作业有关的信息
三 系统daemon进程
pid 为0的进程为内核进程
pid 为1的进程为init进程
keventd守护进程,为函数执行提供上下文
kapmd守护进程高级电源管理
kswapd守护进程页面调出守护进程
bdflush守护进程 冲洗缓冲区到硬盘
kupdated守护进程 冲洗页面到硬盘
portmap端口映射守护进程 将rpc程序号映射为网络端口号的服务
syslogd 日志相关
inetd守护进程 侦听网络接口,服务于网络的请求
nfsd,lockd,rpciod守护进程提供对nfs网络文件系统的支持
cron守护进程 用于在定时执行命令
cupsd 打印假脱机进程,处理所有系统打印请求
守护进程的终端名设置为问号
四 守护进程的编程规则
1)umask设置文件屏蔽字为0,避免进程创建的文件的权限不够
2)调用fork,父进程exit退出
3)调用setsid创建一个新会话
4)将当前工作目录改为根目录
5)关闭不再需要的文件描述符
6)将文件描述符0,1,2重定向到/dev/null
五 出错处理,日志系统
1)内核可以调用log函数,然后写入到设备/dev/klog
2)用户进程调用syslog将日志消息发送到/dev/log
3)编程送往指定主机的udp514端口
4)守护进程syslogd默认读取配置文件/etc/syslog.conf
六 处理函数
openlog
syslog
closelog
setlogmask
vsyslog
七 单实例守护进程实现方法
1) 读/dev下面的设置
2) 读写文件
八 守护进程的惯例
1)守护进程下的锁文件
存放目录 /var/run
锁文件名字 name.pid
2)守护进程的配置文件
存放目录 /etc
配置文件名字 name.conf
3)启动脚本
/etc/rc*
/etc/init.d/*
4)守护进程终止时,重启该进程
/etc/inittab 加入一条记录 _respawn
5)通过接收信号SIGHUP来重新读取配置文件
九 守护进程常作为服务端程序来为客户端服务,通信的方式是unix域套接字