Linux下面Chkconfig 命令应用详解[转载]
Linux下面Chkconfig 命令应用详解
转载自:http://www.kevindeng.org/html/detailed-application-of-the-following-linux-command-chkconfig.html
背景:前面转载了一篇关于chkconfig管理init的文章,这里我们就来应用一下chkconfig
思路:使用具体的例子来说明
步骤:
下面就要说一些实际应用中的东西,原创+重点。嘿嘿
我在应用的时候就碰到过这样的情况,系统启动的时候报一大堆无法连接mysql的错误,问题就是,在mysql数据库存还没有启动的时候已经启动了一些需要连接mysql数据库的服务。这样我们就得修改启动顺序来把需要连接mysql数据库的服务放到mysql服务启动之后再启动。这样我们就得修改启动脚本。一般是在/etc/rc.d/init.d下面。主要是这部分,如下所示:
1 2 3 4 | # chkconfig: 345 98 02 # description: Nagios network monitor # # File : nagios |
其中我们要修改的就是:# chkconfig: 345 99 01 后面的数字部分
1 | 345 98 02 |
这三组数字到底是什么意思呢?
345代表的是系统的启动级别。也就是说系统在345的启动级别的时候会启动nagios服务
98 02 这里有两组数字分别代表的是系统启动的时候应用程序也就是服务的启动级别和系统关闭的时候应用程序关闭的级别。其中98就是启动级别,02就是关闭级别
345 如果在启动脚本里出现了这组数字,那么在执行chkconfig –add nagios的时候就相当于我们执行了chkconfig –add nagios 和chkconfig –level 345 nagios on两条命令。
实践,如图:
执行chkconfig –add npcd 如图所示:
只执行了chkconfig –add npcd,结果345的状态为on了,因为脚本里面已经包含了345。也就是上面说的实际上相当于执行了两条命令。在这里就可以直接执行service npcd start了。
如果没有出现这组数据(345)或者出现了-,就说明在执行完chkconfig –add npcd 后一定要执行chkcofnig –level 345 nagios on这条命令后才能保证服务在机器重启后依然有效
实践:
执行chkconfig –add npcd
看到没,所有的状态都是off。这样我们就必须执行chkconfig –level 345 npcd on之后我们才能保证服务在机器重启后依然有效。
下面我们来以httpd和nagios为例子来做一下比较,看是数值大的先启动或者关闭,还是数值小的先启动或者关闭。实践出真知。
httpd的优先级如图所示(在http启动脚本里就只出现了-,前面我们已经说到过了):
nagios的优先级如图所示(nagios里就出现了前面所说的345这组数值):
99和85 这组数字就是系统启动的时候服务启动的优先级:数字越小,优先级越高,也就是启动的时候数值越小越先启动。如图所示:
01 和15这组数值就是系统关闭的时候关闭服务的优先级:数字越小,优先级越高,也就是关闭的时候数值越小越先关闭。如图所示:
实践证实:
数值越小,就越先启动和关闭。
数值越大,就越后启动和关闭。
理解了这个,那在处理问题和处理服务之间的依赖关系的时候就相当简单了,要不然都不知道怎么去修改那个服务的启动顺序。有时候这个依赖关系处理的不好,导致报错,mysql就是一个很好的例子。