日期:2014-05-16  浏览次数:20732 次

Linux学习记录--服务

服务


常驻在内存中的进程,且提供一些系统功能,就是服务。这个进程称为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[服务名称] 执行操作

     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         
}

服务配置文件分析