使用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这个目录中,最后改改名字,让它开起来更像一个服务的名字:
[root@FWDB init.d]$ pwd /etc/rc.d/init.d [root@FWDB init.d]$ ln -s /opt/tivoli/tsm/server/bin/dsmserv.rc ./dsmserv [root@FWDB init.d]$ ll *dsm* lrwxrwxrwx 1 root root 37 Nov 8 10:43 dsmserv -> /opt/tivoli/tsm/server/bin/dsmserv.rc
此时可以观察一下我们熟悉的/etc/rcX.d,X是指不同运行级别:
[root@FWDB init.d]$ ls /etc/rc3.d/*dsm* /etc/rc3.d/K10dsmserv [root@FWDB init.d]$ ls /etc/rc5.d/*dsm* /etc/rc5.d/K10dsmserv
我们可以像管理普通的服务那样控制TSM的随机启动和关闭了:
[root@FWDB init.d]$ chkconfig --level 3 dsmserv on [root@FWDB init.d]$ ls /etc/rc3.d/*dsm* /etc/rc3.d/S90dsmserv [root@FWDB init.d]$ service dsmserv restart Stopping dsmserv... dsmserv stopped Successfully :-) Starting dsmserv ... Succeeded :-)
这个TSM的输出显得有点山寨。
大家可以留意下,启动和关闭TSM的顺序是不同的,分别是90和10,数值越小越优先启动和关闭,这是在哪里的定义的呢? 这是在dsmserv.rc这个文件的中定义的:
[root@FWDB init.d]$ head -n 8 dsmserv #!/bin/bash # # dsmserv Start/Stop IBM Tivoli Storage Manager # # chkconfig: - 90 10 # description: Starts/Stops the IBM Tivoli Storage Manager Server # processname: dsmserv # pidfile: /var/run/dsmserv.pid
其中,第5行的90代表Start的顺序,10代表Kill(Stop)的顺序,不过更常用的做法是:
# chkconfig: 2345 90 10
指定需要注册的运行级别。注意一下,这种脚本的这两行是必须的,否则chkconfig --add会报错的:
# chkconfig: _____________ # description: _____________
管理嘛,能添加也能删除,调用 chkconfig --del 就可以了。