第13章守护进程总结

1 编写守护进程基本规则

1)umake(0)将文件模式创建屏蔽字设置为0

2)fork之后,父进程exit

3)子进程调用setsid

4)更改工作目录chdir("/")

5)关闭所有打开的文件描述符

6)在/dev/null上打开文件描述符1,2,3

2 守护进程出错处理

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

1)内核进程调用log函数写日志消息到/dev/klog

2)用户进程调用syslog函数写日志消息到/dev/log

3)网络主机上的进程发送日志消息UDP包到514端口

syslogd守护进程用来处理日志消息,此进程的配置文件一般为/etc/syslog.conf,该文件决定不同种类的消息应该如何处理

#include <syslog.h>
void openlog(const char *ident,int option,int facility)
void syslog(int priority,const char *format,...)
void closelog();
int setlogmask(int maskpri)

ident一般是程序名,将被加到每条日志消息中

时间: 2024-10-10 06:27:49

第13章守护进程总结的相关文章

《Unix环境高级编程》读书笔记 第13章-守护进程

1. 引言 守护进程是生存期长的一种进程.它们常常在系统引导装入时启动,仅在系统关闭时才终止.它们没有控制终端,在后台运行. 本章说明守护进程结构.如何编写守护进程程序.守护进程如何报告出错情况. 2. 守护进程的特征 基于BSD的系统下执行:ps -axj -a 显示由其他用户所拥有的进程的状态:-x 显示没有控制终端的进程状态:-j 显示与作业有关的信息 基于System V的系统下执行:ps -efj Linux下执行以上两个命令输出一致 常见的守护进程: kswapd,内存换页守护进程.

Unix网络编程代码 第13章 守护进程和inetd超级服务器

1. 概述 守护进程是在后台运行且不与任何控制终端关联的进程.unix系统通常有很多守护进程在后台运行,执行不同的管理任务.    守护进程没有控制终端通常源于它们由系统初始化脚本启动.然而守护进程也可能从某个终端由用户在shell提示符下键入命令行启动,这样的守护进程必须亲自脱离与控制终端的关联,从而避免与作业控制,终端会话管理,终端产生信号等发生任何不期望的交互,也可以避免在后台运行的守护进程非预期的输出到终端.    守护进程有多种启动方法:    1.在系统启动阶段,许多守护进程由系统初

UNP学习第13章 守护进程和inetd超级服务器

Unix系统中的syslogd守护进程通常由某个系统初始化脚本启动,而且在系统工作期间一直运行. 源自Berkeley的syslogd实现在启动时执行以下步骤. (1)读取配置文件.通常为/etc/syslog.conf的配置文件指定本守护进程可能收取的各种日志消息,应该如何处理. (2)创建一个Unix域数据报套接字,给它捆绑路径名/var/run/log (3)创建一个UDP套接字,给它捆绑端口514. (4)打开路径名/dev/klog. 一.syslog函数 #include <sysl

apue学习笔记(第十三章 守护进程)

本章将说明守护进程结构,以及如何编写守护进程程序. 守护进程,也就是通常说的Daemon进程,是Unix中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件. 编程规则 在编写守护进程程序时需遵循一些基本规则,以防止产生不必要的交互作用.下面将说明这些规则. 1.调用umask将文件模式创建屏蔽字设置为一个已知值(通常是0) 2.调用fork,然后使父进程exit,保证了子进程不是进程组的组长进程,是下面进行setsid调用的先决条件 3

《APUE》读书笔记第十三章-守护进程

守护进程 守护进程是生存期较长的一种进程,它们常常在系统自举时启动,仅在系统关闭时才终止.因为它们没有控制终端,所以说它们是在后台运行的.UNIX系统由很多守护进程,它们执行日常事务活动. 本章主要介绍守护进程的结构,以及如何编写守护进程程序和守护进程如何报告错误情况. 一.守护进程的编程规则 (1)首先要做的是调用umask将文件模式创建屏蔽字设置为0.这是由于继承得来的文件模式创建屏蔽字可能会拒绝设置某些权限. (2)调用fork,然后使父进程退出(exit). (3)调用setsid以创建

第13章,进程和计划任务

更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) http://blog.51cto.com/13683480/2095439 本章内容: 进程相关概念 进程及系统相关工具 计划任务 进程概念: 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 process:       运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(PID)号码被用来标记各个进程 UID.GID.和SElinux语境决定对文件系统的

第十三章 守护进程和inetd超级服务器

书看到这里,我发现我应该把前面steven写的那些包裹函数之类的,实现出自己的一个库来, 方便每次调用,不用自己一遍一遍的写了.库就用libsock.so了. 先创建自己的头文件:unpv13.h #ifndef UNPV13_H_ #define UNPV13_H_ #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <unistd.h> #include <stri

第十三章:守护进程

13.1:引言 守护进程也称精灵进程(daemon)是生存期较长的一种进程.它们常常在系统自举时启动,尽在系统关闭时才终止.因为它们没有控制终端,所以说它们是在后台运行的.Unixi有很多守护进程,它们执行日常事务活动. 13.2:守护进程的特征 查看守护进程: ps -axj 注意: 大多数守护进程都以超级用户特权运行.没有一个守护进程拥有控制终端,其终端名设置为问号(?),终端前台进程组ID设置为-1.内核守护进程以无控制终端方式启动.用户层守护进程缺少控制终端可能是守护进程调用了setsi

13 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件  queue队列 生产者消费者模型 Queue队列 开发一个线程池

本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queue队列 开发一个线程池 进程 语法 进程间通讯 进程池 操作系统发展史 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式. 手工操作程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把