Linux /etc/rc.d 下面 rc${runlevel}.d rc.local init.d 区别

时间:2022-06-22 15:40:01

一:init.d 

init.d 存放的是各种系统跟多服务的开始停止脚本等,/etc/init.d 是 /etc/rc.d/init.d 的软链接。


二:/rc.d/rc${runlevel}.d  这里面也是些脚本,放在这儿的脚本都是根据运行级别来确定的,以K开始的表示STOP 动作,以S开始的表示Start动作


三:rc.local

系统根据运行级别(runlevel)启动完rc${runlevel}.d 里面的脚本时候,就会调用rc.local脚本,无论什么级别都会执行,而不必区分runlevel=3 还是 runlevel=5


例1: 以Apache 为例子,将apachectl 作为一个服务:

cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd

ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S60httpd (60)代表启动顺序


这时候service httpd start|stop|restart 已经可以生效了,但是chkconfig --list 并没有看到我所添加的httpd服务,那是因为我们还没有把这个服务交给chkconfig来管理,所以chkconfig 还需要添加httpd服务才行,那么怎么加,又有什么要求呢?chkconfig --add httpd, 但是需要httpd的脚本需要有一些必要的信息才行。

# chkconfig: 35 60 60 (35 表示运行级别 3 和 5 第一个60 表示开始启动序号 第二个60表示关闭序号)
# description: Apache


编辑完毕之后,保存。 然后执行 chkconfig --add httpd

然后chkconfig --list 就可以看到httpd了。


例2: 以Apache为例,作为自启动服务

echo "./usr/local/apache/bin/apachectl start" >> /etc/rc.d/rc.local

这样每次重启也可以实现httpd自动。