日期:2014-05-16 浏览次数:20732 次
常驻在内存中的进程,且提供一些系统功能,就是服务。这个进程称为daemon.换另外一种说法:服务包括一个提供系统功能的程序以及一个执行该程序的进程
每个服务对应设备的一个端口
按照服务的启动方式可以分为2类:
自启动的服务:大部分为开机就会启动的服务。每一个服务都有一个进程进行控制
统一控制启动服务:由一个独立进程负责启动这些服务,至于何时启动由用户进行控制。这个独立的进程就是xinetd
统一控制启动服务也是一个自启动服务,只是其控制的服务不一定开机就启动
/etc/init.d/*:所有服务启动脚本存放处(学习shell script语法好去处)
/etc/sysconfig/*(各服务的初始化环境配置文件)
/etc/xined.conf统一控制启动服务总体配置文件
/etc/xined.d/*统一控制启动服务配置文件(每个服务的配置文件)
/etc/*:自启动服务各自的配置文件
/var/lib/*自启动服务各自的配置文件
/var/run/*:各个服务的程序的PID记录处
自启动服务在系统启动的时候可能会启动(需要配置),当然我们也可以控制它的启动和停止以及以下其他操作。
前面说到所有服务的启动脚本都存放在/etc/init.d/* ,我们就以syslog服务为例
syslog服务对应的shellscript
case "$1" in start) start ;; stop) stop ;; status) rhstatus ;; restart) restart ;; reload) reload ;; condrestart) [ -f /var/lock/subsys/syslog ] && restart || : ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart}" exit 2 esac
通过以上可以粗略的看到这里包含6个方法(start,stop,rhstatus….) 调用这些方法的条件是 执行shell script 后面跟的参数(start|stop|status|restart|condrestart)
通过以上分析,如果我们要知道一个服务有哪些操作,可以之间查看这个服务的脚本文件
[root@localhost init.d]# ./syslog status syslogd (pid 3637) 正在运行... klogd (pid 3640) 正在运行... [root@localhost init.d]# ./syslog restart 关闭内核日志记录器: [确定] 关闭系统日志记录器: [确定] 启动系统日志记录器: [确定] 启动内核日志记录器: [确定]
语法:service[服务名称] 执行操作
service --status-all
选项与参数:
执行操作:服务需要进行的工作(start|stop|status|restart….)
--status-all:将系统所有自启动服务显示
举例:
[root@localhost ~]# service syslog restart 关闭内核日志记录器: [确定] 关闭系统日志记录器: [确定] 启动系统日志记录器: [确定] 启动内核日志记录器: [确定] [root@localhost ~]# service --status-all acpid (pid 3901) 正在运行... anacron 已停 atd (pid 4240) 正在运行... auditd (pid 3609) 正在运行... …….
前面提到统一控制服务是由一个特殊的进程(xinetd)来控制其他服务的行为
如果针对个体服务配置文件未配置下面项目,那么服务的设置值将去下面内容作为默认值
[root@localhost etc]# vim /etc/xinetd.conf defaults { # 服务启动成功或失败,以及相关登陆行为的记录文件 log_type = SYSLOG daemon info log_on_failure = HOST log_on_success = PID HOST DURATION EXIT # 允许或限制联机的默认值 cps = 50 10 instances = 50 per_source = 10 # 网络 (network) 相关的默认值 v6only # 环境参数的配置 groups umask }