Linux服务管理

1. 服务的分类

Linux的服务分为两大类:

  • RPM包默认安装的服务

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

2. 服务的启动与自启动

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

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

3. 查看已安装的服务

3.1 查看rpm包安装的服务

chkconfig --list

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

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

[root@localhost sh]# chkconfig --list
auditd          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].d
rc0.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.d
K10saslauthd     K15httpd       K75ntpdate      K89rdisc      S08iptables  S11auditd   S15mdmonitor  S22messagebus  S26udev-post  S80postfix  S99local
K15htcacheclean  K50netconsole  K87restorecond  S08ip6tables  S10network   S12rsyslog  S20kdump      S25netfs       S55sshd       S90crond

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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值