一: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自动。