• APUE读书笔记-第13章-守护进程


    第13章 守护进程

    13.1 引言

    *守护进程也称精灵进程(daemon)是生存期较长的一种进程。它们常常在系统自举时启动,仅在系统关闭时才终止。因为它们没有控制终端,所以说它们是在后台运行的。UNIX系统有很多守护进程,它们执行日常事务活动


    13.2 守护进程的特征

    *系统进程依赖于操作系统实现。父进程ID为0的各进程通常是内核进程,它们作为系统自举过程的一部分而启动。(init是此种进程的例外,它是内核在自举时启动的用户层命令。)内核进程是特殊的,通常存在于系统的整个生命期中。它们以超级用户特权运行,无控制终端,无命令行


    13.3 编程规则

    *(1)首先要做的是调用umask将文件模式创建屏蔽字设置为0

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

    (3)调用setsid以创建一个新会话

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

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

    (6)某些守护进程打开/dev/null使其具有文件描述符0、1和2,这样,任何一个试图读标准输入、写标准输出或标准出错的库例程都不会产生任何效果


    13.4 出错记录

    *有三种方法产生日志消息

    (1)内核例程可以调用log函数

    (2)大多数用户进程(守护进程)调用syslog函数以产生日志消息

    (3)在此主机上的一个用户进程,或通过TCP/IP网络连接到此主机的其他主机上的一个用户进程可将日志消息发向UDP端口514


    13.5 单实例守护进程

    *文件和记录锁机制是一种方法的基础,该方法用来保证一个守护进程只有一个副本在运行


    13.6 守护进程的惯例

    *若守护进程使用锁文件,那么该文件通常存放在/var/run目录中

    *若守护进程支持配置选项,那么该配置文件通常存放在/etc目录中

    *守护进程可用命令行启动,但通常它们是由系统初始化脚本之一(/etc/rc*或/etc/init.d/*)启动的

    *某些守护进程将捕捉SIGHUP信号,当它们接收到该信号时,重新配置文件


    13.7 客户进程-服务器进程模型

    *守护进程常常用作服务器进程

    *一般而言,服务器是等待客户进程与其联系的一个进程,客户进程向它提出某种类型的服务要求

    *双向通信:客户进程向服务器进程发送请求,服务器进程则向客户进程回送应答

  • 相关阅读:
    产品中常用理论
    Mac下配置环境变量
    Maven仓库
    深入理解Spring中的各种注解
    JAVA中简单字符串分割
    WARN: HHH000277: Could not bind factory to JNDI
    dos命令窗口下下java命令提示找不到或无法加载主类
    数组实用类:Arrays
    数组
    线程创建方式
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3241509.html
Copyright © 2020-2023  润新知