Linux运维实战之『服务管理』

657 阅读4分钟

    所谓Linux的服务,就是在系统后台运行的应用程序,并且可以提供一些本地系统或网络的功能。

1、Linux服务的分类 :

     主要分为两大类,RPM包默认安装的服务、源码包安装的服务

     RPM包为系统默认包,是经过编译的软件包,安装速度快且不易报错,但不再是开源的,安装到系统默认位置中,可以被服务管理命令识别,这些服务又可分为两种:一种是独立服务,可以自行启动,如apache、FTP服务等;另一种是基于超级守护进程xinetd的服务,不能独立启动,需要通过xinetd唤起服务。 

    源码包是开源的,通过编译安装,安装速度较慢且容易报错,但是自定义性强,安装到指定的位置中(一般为 /usr/local/ 目录),服务管理命令不能被直接识别,一般为源码包设计好的,需要根据说明文档手动配置调起服务。

2、RPM包默认安装的服务管理:

 2.1、RPM包默认安装目录:

 /etc/init.d/ :存放所有独立服务的启动脚本,与 /etc/rc.d/init.d/ 目录相同,使用哪一个都可以。 

 /etc/sysconfig/ : 存放服务的初始化环境配置文件。 

 /etc/ :存放服务的配置文件。 

 /etc/xinetd.conf/ :超级守护进程xinetd的配置文件。 

 /etc/xinetd.d/ :存放基于xinetd服务的启动脚本。 

 /var/lib/ :默认数据存储目录。如RPM包默认安装的mysql服务的数据会存放在/var/lib/mysql/目录中。 

 /var/log/ :默认日志存储目录。如RPM包默认安装的httpd服务的日志会存放在/var/log/httpd/目录中。 

 2.2、独立服务的启动管理:

     Linux默认使用 /etc/init.d/独立服务名 start | stop | restart | status 对独立服务进行启动、停止、重启、查看状态,如下:

     红帽系列系统可以使用 service 独立服务名 start | stop | restart | status 对独立服务进行启动、停止、重启、查看状态,还可以使用 service --status-all 命令查看所有独立服务的启动状态。其他Linux发行版本的专有命令各有不同,这里不做一一描述。

  2.3、独立服务的自启动管理: 

     自启动是指在系统重启之后,服务也会随之重启。这里介绍两种常用的自启动设置方式:

     1)可使用命令 chkconfig --level 运行级别 独立服务名 on|off ,如下:

chkconfig --level 23456 redis on
 
chkconfig --level 6 redis off

     可通过 chkconfig --list 命令查看RPM包默认安装的所有服务及自启动状态:

     2)可通过修改 /etc/rc.d/rc.local 或 /etc/rc.local 文件,加入服务启动命令,如下:(源码包安装的服务同样适用,所以建议统一用这种方式设置自启动服务。注意与chkconfig相对独立,不会影响chkconfig --list的变化)

#!/bin/bash
......
touch /var/lock/subsys/local
 
#示例:加入redis自启动
/etc/init.d/redis start

  2.4、基于xinetd服务的启动管理:

    系统中默认没有安装xinetd超级守护进程,执行安装:

yum -y install xinetd

     安装成功后执行 chkconfig --list 命令查看会多出来xinetd服务:

     基于xinetd的服务一般通过修改该服务的配置文件进行启动,如Telnet服务,修改 /etc/xinetd.d/telnet 文件中的 disable = no,然后重启xinetd服务:service xinetd restart 即可。

 2.5、 基于xinetd服务的自启动管理:

    通过 chkconfig 服务名 on | off 命令设置自启动开关,基于xinetd服务,不用指定--level,如:

chkconfig telnet on

3、源码包安装的服务管理  

 3.1、源码包服务的启动管理

     源码包安装的服务,一般说明文档里会指明启动脚本是哪个文件,如使用源码包安装到 /usr/local/ 目录下的apache服务可以使用如下命令:

/usr/local/apache2/bin/apachectl start | stop | restart

3.2、源码包服务的自启动管理

    源码包安装的服务,同样可以参照2.3中的第二种方法实现自启动,如下加入 /etc/rc.d/rc.local 文件中:

#!/bin/bash
......
touch /var/lock/subsys/local
 
#示例:把源码包安装的apache服务加入自启动
/usr/local/apache2/bin/apachectl start