第十三章 守护进程

守护进程的特征

编程规则

  1. 首先要做的是调用 umask 将文件模式创建屏蔽字设置为一个已知值

  2. 调用 fork,然后使父进程 exit

  3. 调用setsid 创建一个新会话:使调用进程:(a)成为

    新会话的首进程,(b)成为一个新进程组的组长进程,(c)没有控制终端

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

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

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

出错记录

3 种产生日志消息的方法

  1. 内核例程可以调用 log 函数
  2. 大多数用户进程(守护进程)调用 syslog(3)函数来产生日志消息
  3. 无论一个用户进程是在此主机上,还是在通过 TCP/IP 网络连接到此主机的其他主机上,
    都可将日志消息发向 UDP 端口 514

syslogd 守护进程读取所有 3 种格式的日志消息

  1. 紧急消息可发送至系统管理员(若已登录)
  2. 警告消息则可记录到一个文件中
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
int setlogmask(int maskpri);
#include <syslog.h>
#include <stdarg.h>
void vsyslog(int priority, const char *format, va_list arg);

单实例守护进程

lockfile(fd)

守护进程的惯例

若守护进程使用锁文件,那么该文件通常存储在/var/run 目录中(可能需要具有超级用户权限才能在此目录下创建文件),锁文件的名字通常是 name.pid,其中,name 是该守护进程或服务的名字。例如,cron 守护进程锁文件的名 字是/var/run/crond.pid

若守护进程支持配置选项,那么配置文件通常存放在/etc 目录中。配置文件的名字通常 是 name.conf,其中,name 是该守护进程或服务的名字

守护进程可用命令行启动, 但通常它们是由系统初始化脚本之一(/etc/rc或 /etc/init.d/)启动的。如果在守护进程终止时,应当自动地重新启动它,则我们可 在/etc/inittab 中为该守护进程包括 respawn 记录项,这样,init 就将重新启动该 守护进程。下面是centos7的inttab文件,已被取代

# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,384评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,860评论 9 468
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,131评论 0 10
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,185评论 2 33
  • 菊花的影儿在地 藤椅儿背着阳光 书落在地上了 不想拾起来 只任它微风吹卷 窗儿开着 帘儿飏着 人儿无聊 只有 书是...
    梦双眸阅读 2,299评论 3 15