守护进程有两种启动方式,一种是
sysv
方式启动,一种是
xinetd
方式启动。
1
、
sys v
:独立启动,一开机运行就会进入内存,一直处于
listen
状态,即使该守护进程不运行也会一直占用系统资源,但是其最大的优点就是,它一直启动,当有请求时会立即响应,响应速度快,比如
http
服务。
2
、
xinetd
(
super daemon
):超级守护进程,管理众多的进程,比如
telnet
服务。
xinetd
自己是一个
sys v
,它就像老板一样,自己常驻于内存,管理其它的进程,其它进程就相当于它的员工,在其它进程没有用时会睡眠,并不占用系统资源,当有工作时候老板
xinetd
会通知它的员工,唤醒某个进程来执行作业。这种方式适合于那些不是经常被人使用,不需要常驻内存的程序,但是此方式响应时间长,但是节省系统资源,方便管理
超级守护进程的配置文件存放于主配置文件
/etc/xinetd.conf
与服务存放于
/etc/xinetd.d/*
下
其中常用参数的含义:
disable
定义是否启动
{no|yes}no
表示开启,
yes
表示关闭
socket_type {stream|dgram}
表示套接字格式,
stream
是
TCP,dgram
为
udp
protocol
协议类型,这些是需是
/etc/protocol
里可用的
wait
允许并发数,
{yes|no}yes
单线程,
no
多线程
user
运行身份
server
有哪个文件
/
程序启用该服务
server_args
传递的参数
only-from
白名单
no-access
黑名单
access-time
定义访问时间
log-type {SYSLOG|FILE} syslog
定义日志类型,级别;
file
定义日志存放位置
bind
监听
ip
log-on-success
记录登陆成功的信息
log-on-failure
记录登陆失败的信息
per-source
资源限制,限制某一
ip
同时连接请求数
per-source = UNLIMITED
表示不做限制
cps = n m
定义每秒最大连接数
n
,超出后等待
m
秒在连接
示例解释:
/etc/xinetd.d/telnet
service telnet
{
disable = no //
表示服务已经开启
flags = REUSE
socket_type = stream //
表示套接字格式,
stream
是
TCP,dgram
为
udp
wait = no //no
表示为多线程服务,
yes
表示为单线程,用于并发连接请求。
user = root //
以
root
的身份运行此服务
server = /usr/sbin/in.telnetd //
定义有哪个进程起启动此服务,并接受用户访问
log_on_failure += USERID //+=
表示在默认规则上扩展显示。
log_type = FILE /tmp/telnet_log //
定义此服务日志的存储位置
bind = 192.168.0.24 //
指定监听
IP
per_source = 1 //
指定同一
IP
允许向此服务最多打开的连接数
access_times = 08:00-19:30 //
指定可以使用此服务的时间
cps = 100 2 //
表示每秒最多可以有
100
个用户连接次服务,超出着等待
2s
重连
only_from = 192.168.0.0/25 //
表示仅允许
192.168.0.0/25
网段的计算机连接次服务
}
每一次修改配置文件后需要重启服务,这里的服务是超级守护进程
xinetd
服务,使用
chkconfig server on|off
来开启超级守护进程的子进程