xinetd - 扩展的互联网服务守护进程
总览 SYNOPSIS
xinetd [options]
描述 DESCRIPTION
xinetd 执行与 inetd 相同的任务:它启动提供互联网服务的程序。与在系统初始化时启动这些服务器,让它们保持休眠,直到有连接请求到达才提供服务这种做法不同, fBxinetd 是唯一的被启动的守护进程,它侦听各种服务在它们各自的配置文件中列出的所有端口。当一个请求到达,xinetd 启动合适的服务器。因为它以这种方式操作,xinetd (还有 inetd) 常被称作超级服务器。
列在 xinetd 的配置文件中的服务可以分为两组。第一组的服务称为 多线程的 (multi-threaded) 并且它们需要为每个新的连接请求产生 (fork) 一个新的服务器进程。接下来新的服务器将处理那个连接。对于这些服务,xinetd 保持侦听新的请求从而可以孵化 (spawn) 新的服务器。另一方面,第二组包含着需要由服务器守护进程处理所有新的连接请求的服务。这些服务称为 单线程的 (single-threaded) 并且 xinetd 将停止为它们处理新的请求,直到这个服务器退出。这个组中的服务一般都是基于数据报的。
至今,超级服务器存在的唯一理由是通过避免大量产生生命周期中大部分时间可能都是空闲着的进程,从而节省系统资源。当实现这种功能时, fBxinetd 从超级服务器这种思想中获得了好处,可以提供访问控制和日志等特性。更进一步,xinetd 不仅限于侦听 /etc/services 中列出的服务。因此,任何人都可以使用 xinetd 来启动特殊用途的服务器。
选项 OPTIONS
- -d
- 启用调试模式。这样将产生大量调试输出,并且使得在 xinetd 上使用一个调试器成为可能。
- -syslog syslog_facility
- 这个选项使得 syslog 使用指定的日志功能来记录 xinetd 产生的消息。可以使用下列功能: daemon, auth, user, local[0-7] (参见 syslog.conf(5) 来查看它们的意义)。这个选项在 debug 模式是无效的,因为所有的相关信息都将送到终端上。
- -filelog logfile
- xinetd 产生的信息将放到指定文件中。信息总是添加到文件之后。如果文件不存在,将会被创建。这个选项在 debug 模式无效,因为所有的相关信息都将送到终端上。
- -f config_file
- 决定xinetd 用来配置的文件。默认设置是 /etc/xinetd.conf。
- -pidfile pid_file
- 进程 ID 被写入的文件。这个选项在 debug 模式无效。
- -dontfork
- 指定xinetd 在前台运行,而不是分离自身以支持由 init 或 daemontools 运行。这个选项自动设置了
-stayalive (参见下面)。 - -stayalive
- 指定xinetd 保持运行,即使没有指定服务。
- -limit proc_limit
- 这个选项为 xinetd 可以启动的并行运行的进程数设置了一个上限。目的是防止进程表溢出。
- -logprocs limit
- 这个选项为服务远程用户的并行运行的进程数设置了一个上限。
- -version
- 这个选项使得 xinetd 打印出它的版本信息。
- -inetd_compat
- 这个选项使得 xinetd 在标准的配置文件之外,附加地读取/etc/inetd.conf。/etc/inetd.conf
的读取是在读取标准的配置文件之后。 - -cc interval
- 这个选项指定 xinetd 每 interval 秒对内部状态进行一次定时的一致性检查。
syslog 和 filelog 选项是互相独立的。如果没有指定任何一个,默认将使用 syslog 的
daemon 功能。你不应将 xinetd 信息与和服务日志相关的信息相混淆。后者只有在配置文件中指定之后才会记录。
控制 xinetd CONTROLLING XINETD
xinetd 收到一定的信号时会执行一定的动作。与特定信号相关联的特定动作可以通过修改 config.h
并且重新编译来重新定义。
- SIGHUP
- 导致一个强制的重新配置,意味着 xinetd
重新读取配置文件,停止不再有效的服务的服务器。在正在运行的服务器上将刷新访问控制,检查远程位置,访问时间和服务器实例。如果允许的服务器实例数减少了,一些随机选取的服务器将会被杀掉来满足限制;
这将在任何服务器停止之后发生,因为不能通过远程位置或访问时间的检查(this will happen after any
servers are terminated because of failing the remote location or access time
checks)。还有,如果 INTERCEPT
标志被清除后又重新设置,此服务的任何运行中的服务器将被停止。这样做的目的是保证在强制的重新配置之后,没有那种接受从不遵循访问控制标准的地址发来的包的服务器在运行。 - SIGQUIT
- 导致程序退出。
- SIGTERM
- 在 xinetd 退出之前,停止所有运行中的服务器。
- SIGUSR1
- 导致内部状态转储 (默认的转储文件是 /var/run/xinetd.dump;要改变文件名,修改 config.h
然后重新编译。) - SIGIOT
- 导致一个内部一致性检查来核对程序使用的数据结构没有崩溃。当检查结束时, xinetd 将产生一个消息,报告测试是成功了还是失败了。
重新配置的时候,日志文件被关闭又重新打开。这样做允许移除旧的日志文件。
文件 FILES
- /etc/xinetd.conf
- 默认的配置文件
- /var/run/xinetd.dump
- 默认的转储文件
xinetd - 扩展的互联网服务守护进程的更多相关文章
- Linux中的两种守护进程stand alone和xinetd
Linux中的两种守护进程stand alone和xinetd --http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html#top 一 ...
- Linux 守护进程和超级守护进程(xinetd)
一 .Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程来执行的 ...
- Linux守护进程详解(init.d和xinetd) [转]
一 Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台 的守护进程来执行的 ...
- Linux守护进程详解(init.d和xinetd)
一 Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程来执行的. ...
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.它不需要用户输入就能运行而且提供某种服务,不是对整个 ...
- 创建守护进程步骤与setsid() -- linux deamon进程
原创:http://www.cnblogs.com/mickole/p/3188321.html 一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终端并且 ...
- 深入理解Linux操作系统守护进程的意义
Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的.守护进程 ...
- RabbitMQ PHP操作类,守护进程及相关测试数据
封装类如下: <?php /* * amqp协议操作类,可以访问rabbitMQ * 需先安装php_amqp扩展 */ class RabbitMQCommand{ public $confi ...
- Unix网络编程代码 第13章 守护进程和inetd超级服务器
1. 概述 守护进程是在后台运行且不与任何控制终端关联的进程.unix系统通常有很多守护进程在后台运行,执行不同的管理任务. 守护进程没有控制终端通常源于它们由系统初始化脚本启动.然而守护进程也 ...
随机推荐
- 浅析php-fpm和fastcgi的关系
先讲讲CGI吧 浏览器向web server发起请求的时候,要有url,header,params等等吧,为什么有这些数据呢,这就是CGI的事了,CGI就规定了,传哪些数据,用什么样的格式传输 web ...
- Mach-O简介及实际应用
一.前言 在正题开始之前,我们先来聊聊iOS中的hook技术.一谈到hook,很多人首先想到的是runtime,runtime确实强大,但是它存在很多局限性: 1).侵入性:一旦hook了某个类的 ...
- Spark Core 1.3.1源码解析及个人总结
本篇源码基于赵星对Spark 1.3.1解析进行整理.话说,我不认为我这下文源码的排版很好,不能适应的还是看总结吧. 虽然1.3.1有点老了,但对于standalone模式下的Master.Worke ...
- .net Mvc Dapper 方法封装
首先需要添加 NuGet 包 Dapper 以及引用Configuration <connectionStrings> <add name="SqlSrc&quo ...
- 2018焦作网络赛-E- Jiu Yuan Wants to Eat
题目描述 You ye Jiu yuan is the daughter of the Great GOD Emancipator. And when she becomes an adult, s ...
- javac无效问题解决
首先去下载JDK的最新版本,目前应该是1.7,具体下载地址可以百度去搜索下载 步骤阅读 2 下载时候要注意自己系统的版本,JDK分32位和64位版,根据自己系统版本下载. 步骤阅读 3 下载完后安装, ...
- Java之有名内部类和匿名内部类
Java内部类 定义在外部类中的类就是内部类:内部类的定义是为了更清楚.详细地描述事物. 有名内部类和匿名内部类 Java语言根据内部类是否有类名将内部类分为有名内部类和匿名内部类(没有类名). 有名 ...
- Redis中存储对象区别
1.最常用的是String结构,key和value都是字符串类型: 2.哈希:比较是用于对对象的操作: 3.List:按照插入数据顺序保存,value是可以重复的,底层是双向链表: 4.集合:是Str ...
- 对Map的key按升序进行排序
//对Map的key按升序进行排序 List<Map.Entry<Integer,Task>> mappingList = new ArrayList<Map.Entry ...
- [NOIP模拟测试12]题解
A. 找规律题.儿子的编号减去 小于它编号的最大的fibonacci数 即可得到它父亲的编号. 然后两个节点都暴力上跳就好了.预处理一下fibonacci数,每次二分查找即可. #include< ...