美文网首页
第十三章 守护进程

第十三章 守护进程

作者: laidian | 来源:发表于2018-10-07 13:50 被阅读14次

守护进程的特征

编程规则

  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
#

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

相关文章

  • 第十三章 守护进程

    守护进程的特征 编程规则 首先要做的是调用 umask 将文件模式创建屏蔽字设置为一个已知值 调用 fork,然后...

  • rsync服务企业应用

    守护进程服务企业应用: 守护进程多模块功能配置 守护进程的排除功能实践 守护进程来创建备份目录 守护进程的访问控制...

  • Python多进程

    守护进程 守护进程其实就是“子进程“是否伴随主进程一起结束:守护==>伴随,即守护进程会伴随主进程的代码运行完毕后...

  • 守护进程和守护线程详解

    守护进程 什么是守护进程? 守护进程会在主进程代码运行结束的情况下,立即挂掉。 守护进程本身就是一个子进程。 主进...

  • 4.5、守护进程及信号处理实战

    1、守护进程功能的实现守护进程融入项目,解放终端。相关配置:Daemon = 1;按照守护进程的方式运行守护进程如...

  • PHP创建守护进程

    PHP 创建守护进程 执行守护进程

  • forever

    start:启动守护进程stop:停止守护进程stopall:停止所有的forever进程restart:重启守护...

  • 进程守护进程

    什么是守护进程?Linux 的大多数服务器就是用守护进程实现的,使用ps -axj可以查看守护进程: 守护进程基本...

  • redis.conf详解之daemonize

    用法 作为非守护进程运行 作为守护进程运行 注意事项: 默认情况下,Redis不作为守护进程运行。如果以守护进程运...

  • 守护进程,互斥锁,队列,生产者消费者模型

    守护进程 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进...

网友评论

      本文标题:第十三章 守护进程

      本文链接:https://www.haomeiwen.com/subject/gljlaftx.html