守护进程:
1 系统启动时,由系统初始化脚本启动。一般在/etc目录下,或者以/etc/rc开头的目录
2 许多网络服务器由inetd超级服务器启动
3 cron守护进程按规则定期执行一些程序
4 用at命令指定在将来的某一时刻执行程序。
 
守护进程输出消息,syslog函数,消息发往syslogd守护进程
 
syslogd守护进程:
1 读入配置文件,通常是/etc/syslog.conf。设定守护进程对接收每次键入的各种等级消息的处理。
2 创建一个unix域套接口,捆绑路径名/var/run/log
3 创建一个UDP套接口,给它捆绑端口514
4 打开路径名/dev/klog,内核中的所有出错消息作为这个设备的输入出现
 
void syslog(int priority,const char * message,...); 
 
举例:
syslog(LOG_INFO|LOG_LOCAL2,"rename(%s,%s):%m",file1,file2);
%m:将当前的errno值得出错消息取代
 
在/etc/syslog.conf文件中进行设置
 
daemon_init函数:使一个进程编程守护进程
#include "unp.h"
#include <syslog.h>
#define MAXFD 64
extern int daemon_proc;
void daemon_init(const char * pname,int facility){
int i;
pid_t pid; if((pid = Fork())!=) //调用fork,终止父进程,留下子进程继续运行。
exit(); setid(); //创建一个新的登陆会话session
Signal(SIGHUP,SIG_IGN); //忽略SGIHUP信号并在此调用fork if((pid=Fork())!=) //确保将来即使打开一个终端设备,也不会自动获得控制终端。
exit(); daemon_proc = ; //非零时,出错处理函数将调用syslog函数取代fprintf输出到标准错误输出 chdir("/");
umask();//将工作目录改到根目录 for(i=;i<MAXFD;i++) //关闭守护进程从运行开始打开的所有文件描述字
close(i); openlog(pname,LOG_PID,facility);
}
inetd守护进程
/etc/inetd.conf配置超级服务器处理的服务
守护进程工作流程:
1 启动读/etc/inetd.conf文件,指定创建相应类型的套接口
2 调用bind,绑定众所周知的端口和通配地址
3 对TCP调用listen
4 调用select等待套接口变为可读
5 返回一个可读的套接口,如果是TCP套接口,就调用accept接受
6 调用fork,由子进程处理服务请求
 
 
 

守护进程和inetd超级服务器的更多相关文章

  1. 《Unix 网络编程》13:守护进程和 inetd 超级服务器

    守护进程和 inetd 超级服务器 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...

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

    1. 概述 守护进程是在后台运行且不与任何控制终端关联的进程.unix系统通常有很多守护进程在后台运行,执行不同的管理任务.    守护进程没有控制终端通常源于它们由系统初始化脚本启动.然而守护进程也 ...

  3. UNP学习笔记(第十三章 守护进程和inetd超级服务器)

    关于守护进程可以查看apue的笔记 http://www.cnblogs.com/runnyu/p/4645046.html daemon_init函数 下面给出名为daemon_init函数,通过调 ...

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

    Unix系统中的syslogd守护进程通常由某个系统初始化脚本启动,而且在系统工作期间一直运行. 源自Berkeley的syslogd实现在启动时执行以下步骤. (1)读取配置文件.通常为/etc/s ...

  5. UNP总结 Chapter 12~14 IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数

    一.IPv4与IPv6的互操作性 1.IPv4客户与IPv6服务器 拥有双重协议栈的主机的一个基本特性就是:其上运行的IPv6服务器既能应付IPv4客户,又能应付IPv6客户.这是通过使用IPv4映射 ...

  6. inet超级服务器和守护进程

    inetd是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求.它可以为多种服务管理连接,当 inetd接到连接时,它能够确定连接所需的程序,启动相应的进程,并把 socke ...

  7. Linux中的两种守护进程stand alone和xinetd

    Linux中的两种守护进程stand alone和xinetd --http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html#top 一 ...

  8. Linux守护进程详解(init.d和xinetd) [转]

    一 Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台 的守护进程来执行的 ...

  9. 深入理解Linux操作系统守护进程的意义

    Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的.守护进程 ...

随机推荐

  1. iOS 5.0 后UIViewController新增:willMoveToParentViewController和didMoveToParentViewCon

    在iOS 5.0以前,我们在一个UIViewController中这样组织相关的UIView   在以前,一个UIViewController的View可能有很多小的子view.这些子view很多时候 ...

  2. android.os.NetworkOnMainThreadException解决

    很早就知道Android4.0以后,要把耗时的网络操作放在多线程中,处理方法有: 1) setContentView(R.layout.activity_main)下面加上如下代码 if (andro ...

  3. 将数据库中的表注册到K2服务中,并封装为Smart Object

    转:http://www.cnblogs.com/dannyli/archive/2011/08/15/2139550.html K2 blackpearl项目中经常需要将其他数据中的表注册到K2服务 ...

  4. socket基础函数(2)

    http://www.cnblogs.com/RascallySnake/archive/2013/07/11/3185071.html   一.select  winsock中 #include & ...

  5. 【leetcode】Find Minimum in Rotated Sorted Array II JAVA实现

    一.题目描述 Follow up for "Find Minimum in Rotated Sorted Array":What if duplicates are allowed ...

  6. Dubbo原理解析-注册中心之Zookeeper协议注册中心

    下面我们来看下开源dubbo推荐的业界成熟的zookeeper做为注册中心, zookeeper是hadoop的一个子项目是分布式系统的可靠协调者,他提供了配置维护,名字服务,分布式同步等服务.对于z ...

  7. HTML5中DOM元素的querySelector/querySelectorAll的工作机制

    在HTML5中,提供了强大的DOM元素选择API querySelector/querySelectorAll,允许使用JavaScript代码来完成类似CSS选择器的DOM元素选择功能.通常情况下, ...

  8. Android中垃圾回收日志信息

    原因 GC_CONCURRENTfreed 178K, 41% free 3673K/6151K, external 0K/0K, paused 2ms+2msGC_EXPLICITfreed 6K, ...

  9. Dapper的完整扩展(转)

    真心想说:其实...我不想用Dapper,如果OrmLite.Net支持参数化的话,也就没Dapper的什么事情了,对于OrmLite.Net只能做后续跟踪...... 这个其实是看了Dapper作者 ...

  10. bjfu1287字符串输出的大水题

    不多说 /* * Author : ben */ #include <cstdio> #include <cstdlib> #include <cstring> # ...