linux服务和启动流程

1. linux服务(daemon):stand alone(服务可单独启动)和super daemon(通过xinetd统一管理的服务)。

1.1 stand alone daemon启动的脚本放置在/etc/init.d/这个目录中,

启动规则一:/etc/init.d/rsync {start|stop|status|restart|condrestart}

启动规则二:service rsync start

特点:daemon常驻内存,响应快,无服务启动时间。

1.2 super daemon的配置文件/etc/xinetd.conf,个别daemon配置文件则放在/etc/xinetd.d/*内,

启动规则统一为:/etc/init.d/xinetd restart.

特点:由super daemon统一管理,仅当客户请求时,super daemon才唤醒相应的服务。

常用命令:

grep -i 'disable' /etc/xinetd.d/* #查看super daemon所管理的服务有哪些启动

grep 'rsync' /etc/services #查看rsync占用的端口号

netstat -tnlp|grep 873 #查看873端口是否正在监听

1.2.1 xinetd.conf配置文件讲解

defaults
{
        log_type        = FILE /var/log/xinetd.log 
        log_on_success  = HOST EXIT DURATION
        log_on_failure  = HOST ATTEMPT
#       only_from       = localhost           #允许哪些ip访问服务
        instances       = 30
        cps             = 50 10
}
includedir /etc/xinetd.d    #由super daemon监管的所有daemon的配置文件存放目录
 

1.2.2 super daemon管理的daemo的配置文件讲解(以rsync服务为例):

service rsync
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/sbin/rsyncd
        server_args     = --daemon
        disable         = no
}

 服务名和/etc/xinetd.d/rsync脚本名称必须一致,否则会出错。

1.2.3 服务的防火墙 xinetd

任何以xinetd管理的服务都可以通过/etc/hosts.allow,/etc/hosts.deny来设置防火墙。

格式:

服务(即程序名称) : ip domain hostname : 操作

注意:程序名需要在/etc/xinetd.d/*相关配置文件中查找server参数的值,如上面server=/usr/sbin/rsyncd,则表示rsync服务的程序名称是rsyncd.



2. 系统服务设置
2.1 管理系统服务默认开机启动与否
/sbin/chkconfig --list [服务名称]
/sbin/chkconfig [--level [0123456]] [服务名称] [on|off]
例如:
/sbin/chkconfig --level 35 rsync on #让服务rsync在run level为3,5时启动。
/sbin/chkconfig rsync on #若不写level,则默认为3,5
/sbin/chkconfig --list
/sbin/chkconfig --list rsync
补充:more /etc/services #查看系统所有服务和相应端口

2.2 设置自己的系统服务
/sbin/chkconfig [--add|--del] 服务名称
参数:
--add 增加一个服务名称给chkconfig来管理,该服务名称必须在/etc/init.d内

3 启动流程
内核主动调用init进程
init进程开始执行系统初始化(/etc/rc.d/rc.sysinit)
依据init的设置进行daemon start(/etc/rc.d/rc[0-6].d/*)
加载本机设置(/etc/rc.d/rc.local)

补充:
1. 各脚本目录解释
/etc/init.d/*		#启动脚本放置处
/etc/rc.d/init.d/	        #CentOS放在此目录
/etc/sysconfig/*	#各服务的初始化环境配置文件
/etc/xinetd.conf,/etc/xinetd/*	#super daemon配置文件
/etc/* 			#各服务各自的配置文件
/var/lib/*			#各服务产生的数据库
/var/run/*		#各服务的程序的PID记录处
 


猜你喜欢

转载自suo.iteye.com/blog/1119546