使用chkconfig来管理Linux的服务


 chkconfig 用得最多的估计是在装完Linux后关闭一大堆无用的服务,特别是sendmail,我们还可以用chkconfig这个命令来管理Linux的服务,在此之前先复习一下Linux的运行级别,Linux一般会有7个运行级别:

0 - 停机
1 - 单用户模式
2 - 多用户,但是没有NFS ,不能使用网络
3 - 完全多用户模式,我最喜欢的模式
4 - “打酱油” 模式,没有用到
5 - X11
6 - 重新启动 (如果将默认启动模式设置为6,Linux将会不断重启)

      0和7属于临时运行级别不应设置为默认,默认的运行级别在 /etc/inittab 中设置。

      言归正传,chkconfig可以为我们定制服务,以TSM为例,安装好TSM的Server后,在目录/opt/tivoli/tsm/server/bin中可以找到一个文件dsmserv.rc,将其ln到/etc/init.d这个目录中,最后改改名字,让它开起来更像一个服务的名字:

 
1 [root@FWDB init.d]$ pwd
2 /etc/rc.d/init.d
3 [root@FWDB init.d]$ ln -s /opt/tivoli/tsm/server/bin/dsmserv.rc ./dsmserv 
4 [root@FWDB init.d]$ ll *dsm*
5 lrwxrwxrwx 1 root root 37 Nov  8 10:43 dsmserv -> /opt/tivoli/tsm/server/bin/dsmserv.rc

      此时可以观察一下我们熟悉的/etc/rcX.d,X是指不同运行级别:

 
1 [root@FWDB init.d]$ ls /etc/rc3.d/*dsm*
2 /etc/rc3.d/K10dsmserv
3 [root@FWDB init.d]$ ls /etc/rc5.d/*dsm* 
4 /etc/rc5.d/K10dsmserv

      我们可以像管理普通的服务那样控制TSM的随机启动和关闭了:

 
1 [root@FWDB init.d]$ chkconfig --level 3  dsmserv on  
2 [root@FWDB init.d]$ ls /etc/rc3.d/*dsm*                    
3 /etc/rc3.d/S90dsmserv
4 [root@FWDB init.d]$ service dsmserv restart 
5 Stopping dsmserv...
6 dsmserv stopped Successfully :-)
7   
8 Starting dsmserv ... Succeeded :-)

      这个TSM的输出显得有点山寨。

      大家可以留意下,启动和关闭TSM的顺序是不同的,分别是90和10,数值越小越优先启动和关闭,这是在哪里的定义的呢? 这是在dsmserv.rc这个文件的中定义的:

 
0 [root@FWDB init.d]$ head -n 8 dsmserv   
1 #!/bin/bash
2 #
3 # dsmserv       Start/Stop IBM Tivoli Storage Manager
4 #
5 # chkconfig: - 90 10
6 # description: Starts/Stops the IBM Tivoli Storage Manager Server
7 # processname: dsmserv
8 # pidfile: /var/run/dsmserv.pid

      其中,第5行的90代表Start的顺序,10代表Kill(Stop)的顺序,不过更常用的做法是:

 
1 # chkconfig: 2345 90 10

      指定需要注册的运行级别。注意一下,这种脚本的这两行是必须的,否则chkconfig --add会报错的:

 
1 # chkconfig: _____________
2 # description: _____________

      管理嘛,能添加也能删除,调用 chkconfig --del 就可以了。

相关内容