今天遇到了一个问题,我们写了一个服务脚本A,该服务需要优先于mysql启动。脚本是从其他地方拷来的模板,前面的默认配置没改,只是实现了自己的功能。写完,chkconfig A on,reboot,启动后就傻眼了,mysql未能正常启动。最后分析原因,原来是服务A在mysql之后才启动,未能给mysql分配出需要的硬件环境。问题来了,如何让服务A先于mysql之前启动呢?

要知道服务的启动顺序,就需要先知道服务如何启动的。linux有7个运行级别,用户可选择不同的运行级别。进入/etc/rc.d/目录,可查看到对应从rc0.d到rc6.d等7个目录,这些目录即对应7个级别。

进入rc3.d目录,可看到各种以K或者S开始的服务,K表示启动,S表示停止,而后面的数字就表示启动顺序。我们以熟悉的network服务为例,这里只是个链接,其实还是指向/etc/init.d/network,其启动值为10。


打开/etc/init.d/network文件,文件头有“# chkconfig: 2345 10 90”一行,这一行就指定了其启动和的优先级。如果要改变其优先级,修改脚本文件,通过chkconfig --del network,再chkconfig --add network,即可修改成功。

版权声明:本文为博主原创文章,未经博主允许不得转载。