Linux服务管理

来源:互联网 发布:quick是什么软件 编辑:程序博客网 时间:2024/05/17 02:15

1. 服务的分类

Linux的服务分为两大类:

  • RPM包默认安装的服务

    它又分为独立的服务和基于xinetd的服务。Linux中绝大多数的服务都是独立的服务。
  • 源码包安装的服务

2. 服务的启动与自启动

启动是指在当前系统中让服务运行,并提供功能。

自启动是指让服务在系统开机或重启后,随着系统的启动而自动启动服务。

3. 查看已安装的服务

3.1 查看rpm包安装的服务

chkconfig --list

查看所有RPM包安装的服务,以及服务在系统的7个运行级别中的自启动状态。

注意:chkconfig命令对源码包安装的服务无效,除非经过特殊处理。

[root@localhost sh]# chkconfig --listauditd          0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭crond           0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭htcacheclean    0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭httpd           0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭ip6tables       0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭iptables        0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭kdump           0:关闭    1:关闭    2:关闭    3:启用    4:启用    5:启用    6:关闭mdmonitor       0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭messagebus      0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭netconsole      0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭netfs           0:关闭    1:关闭    2:关闭    3:启用    4:启用    5:启用    6:关闭network         0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭ntpdate         0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭postfix         0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭rdisc           0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭restorecond     0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭rsyslog         0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭saslauthd       0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭sshd            0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭udev-post       0:关闭    1:启用    2:启用    3:启用    4:启用    5:启用    6:关闭

注意:上面显示的只是服务的自启动状态,服务是否已经启动可通过查看进程的ps命令来判断。

在linux系统中,有七个运行级别。

0  关机1  单用户模式(命令行界面),类似于windows的安全模式,主要用于系统修复 (只会启动最基本的程序)2  不完全的多用户模式(命令行界面),不含NFS服务,也没有网络3  完全的多用户模式(命令行界面),是标准的字符界面4  未分配,系统保留的一个运行级别5  标准的图形界面6  重启

通过 runlevel 命令,可查看系统当前的运行级别。
第一个数字表示上一次的运行级别,第二个数字表示当前的运行级别。

[root@localhost sh]# runlevel N 3

3.2 查看源码包安装的服务

一般只能通过查看服务安装的位置(/usr/local)进行辨别。

3.3 rpm包安装的服务和源码包安装的服务的位置

  • rpm包安装在系统默认的目录中。
  • 源码包安装在用户指定的目录中,一般是在/usr/local下。

安装位置的不同导致了服务管理的方式不同。因此,通常情况下,service、chkconfig和ntsysv只对rpm包安装的服务起作用。

4. rpm包服务的管理

rpm包安装的默认位置主要有:

  • /etc/init.d/:独立服务启动脚本的保存位置,同目录/etc/rc.d/init.d/(/etc/init.d/是/etc/rc.d/init.d/的软连接)。
  • /etc/sysconfig/:初始化环境配置文件的保存位置。
  • /etc/:配置文件的保存位置。
  • /etc/xinetd.conf:xinetd的配置文件。
  • /etc/xinetd.d/:基于xinetd的服务启动脚本的保存位置。
  • /var/lib/:服务产生的数据的保存位置。
  • /var/log/:日志的保存位置。

rpm包安装的服务,有两种:

  • 独立的服务(重点掌握)
  • 基于xinetd的服务(目前很少见,了解即可)

4.1 独立服务的管理

独立服务的启动,有三种方法:

  • /etc/init.d/服务名 start|stop|restart|status(推荐使用)
  • /etc/rc.d/init.d/服务名 start|stop|restart|status
  • service 服务名 start|stop|restart|status

说明:/etc/init.d是/etc/rc.d/init.d的软链接(相当于快捷方式)。

service命令来启动服务,其实也是从服务的绝对路径(/etc/rc.d/init.d)中找到该服务的启动脚本(红帽子系列的Linux才有service命令)。

注意:service命令对源码包安装的服务无效,除非经过特殊处理。

service --status-all查看所有rpm包服务的运行状态。

独立服务的自启动,有三种方法:

  • chkconfig [–level 运行级别] [服务名] [on|off]

    chkconfig httpd on将Apache服务设置为开机自动启动。也可以这样写chkconfig --level 2345 httpd on
  • 修改/etc/rc.d/rc.local文件或/etc/rc.local文件(推荐使用)

    /etc/rc.local是/etc/rc.d/rc.local的软链接。该文件会在系统开机后(登录之前)自动执行,故只需将服务的启动命令写入该文件即可。
  • 使用ntsysv命令管理自启动

    它可管理所有rpm包服务的自启动,*代表开机自启动,空代表手动启动。它有一个图形界面,但却是红帽子系列专有的,默认也没安装。ntsysv命令对源码包安装的服务无效,除非经过特殊处理。

4.2 基于xinetd服务的管理

安装xinetd与telnet

yum -y install xinetd           安装xinetd超级服务。新版本的Linux中已经取消了xinetd的安装,而且基于xinetd的服务也越来越少。yum -y install telnet-server    安装telnet-server服务器端。telnet服务是基于xinetd的,但telnet服务(主要用作远程管理)不太安全。目前,远程管理使用更加安全的ssh服务。

说明:了解一下即可,不推荐安装。

基于xinetd的服务的启动

基于xinetd的服务,不能直接启动,它是被超级服务xinetd所管理的。

示例:telnet的启动步骤

vi /etc/xinetd.d/telnet         编辑telnet启动脚本的内容,将disable的值由yes改为no。service xinetd restart          重启超级服务xinetd。

基于xinetd服务的自启动,有两种方法:

  • chkconfig 服务名 on
  • 使用ntsysv命令管理自启动

说明:基于xinetd服务的启动和自启动没有严格的区分,它们是相通的。

5. 源码包服务的管理

5.1 源码包服务的启动

  • 使用绝对路径,调用启动脚本来启动源码包安装的服务

不同的源码包的启动脚本不同,可通过查看源码包的安装说明,来明确掌握启动脚本的方法。

例如,源码包安装的apache2.2的启动方法:

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

5.2 源码包服务的自启动

  • 修改/etc/rc.d/rc.local文件或/etc/rc.local文件

例如,源码包安装的apache2.2的自启动方法:

vi /etc/rc.d/rc.local       修改该文件,在最后一行添加/usr/local/apache2/bin/apachectl start 这行代码即可。

5.3 让源码包服务被服务管理命令管理

让源码包服务能被service命令管理的方法:

  • 在/etc/init.d或/etc/rc.d/init.d中创建服务启动脚本的软链接

下面以源码包安装的apache2.2为例。

ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache 为apache的启动脚本创建一个软链接文件/etc/init.d/apache。注意:保证软链接的文件名不能和/etc/init.d中现有的文件名相同。之后,就可以用service apache start|stop|restart|status来管理该源码包安装的apache。

一般不推荐这么做。因为service命令本身是管理rpm包服务的,如果这么做了,初学者就会很困惑。

让源码包服务也能被chkconfig和ntsysv命令管理的方法:

  • 修改上面创建的软链接文件,并将软链接文件名(不能包含路径)添加到chkconfig命令的管理列表。

下面以源码包安装的apache2.2为例。

vi /etc/init.d/apache   修改apache的启动脚本,添加下面两行代码。# chkconfig: 2345 500 550               # description: source package apache        

注意:添加的这两行代码前的#不能省略。

说明:chkconfig后面的三个数字,分别代表系统的运行级别、启动顺序、关闭顺序。必须保证启动顺序和关闭顺序都不能和系统中现有的服务相同。

chkconfig --add apache      将apache服务添加到chkconfig命令的管理列表。之后,就可以用chkconfig和ntsysv命令管理源码包安装的apache。

识别系统中现有服务的启动顺序和关闭顺序的方法:

[root@localhost ~]# cd /etc/rc.d[root@localhost rc.d]# ls -d rc[0-6].drc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d

/etc/rc.d目录中的这些子文件夹(rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d)的名称中的数字分别代表系统的7个运行级别。

[root@localhost rc.d]# ls rc3.dK10saslauthd     K15httpd       K75ntpdate      K89rdisc      S08iptables  S11auditd   S15mdmonitor  S22messagebus  S26udev-post  S80postfix  S99localK15htcacheclean  K50netconsole  K87restorecond  S08ip6tables  S10network   S12rsyslog  S20kdump      S25netfs       S55sshd       S90crond

以/etc/rc.d/rc3.d目录为例,里面的每个文件的文件名都有特殊的含义,代表了3运行级别时的启动顺序和关闭顺序。

第一个字母若为S,后面的数字就代表启动顺序;第一个字母若为K,后面的数字就代表关闭顺序;其余的字符代表服务的名称。