源码编译安装Apache开机自启动,源码编译apache开机


当用源码安装完Apache之后无法利用命令设置开机自启动,不过可以把启动命令写在/etc/rc.d/rc.local文件里,下面简单说下怎么设置命令自启动(centos6):

原理

Linux系统系统服务启动脚本放在/etc/rc.d/init.d/目录下,不同的开机模式对应/etc/rc.d/rc0~6.d/不同的目录,这些目录对应不同运行级别init.d目录下脚本启停顺序,这几个目录的命令形式为K(S)+number+serviceName,这些文件链接到service对应脚本存在目录,要想使用service命令启停服务,就要把我们自己的脚本放到/etc/init.d/目录下,而且在脚本第二行加运行级别、描述两行注释。

运行级别:
0 - 关机
1 - 单用户模式
2 - 多用户无网络模式(很少使用)
3 - 完整的多用户终端模式(无图形界面)
4 - 保留
5 - 多用户带GUI模式
6 - 重启

[root@centos6 init]# vi /etc/inittab
id:5:initdefault:
#不要把默认启动级别设置成0或6

操作

如果想将httpd列入系统自动启动的服务,可以直接将上述的apachectl文件拷贝到 /etc/rc.d/init.d 目录中。

cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
在脚本第二行加上如下注释
# chkconfig: 2345 61 39  #在脚本第二行开始添加
# description: Apache #centos6以后版本可加可不加,最好加上
[root@centos6 rc0.d]# chkconfig --add httpd 
[root@centos6 rc0.d]# chkconfig httpd on #默认开启2345运行级别,当然可以通过选项--level num指定运行级别
[root@centos6 rc0.d]# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

注:当执行完chkconfig –add httpd命令后会自动在启动级别2345加上S61httpd,016级别加上K39httpd软连接,这些软连接存放在/etc/rcN.d(N为启动级别)目录下。启动的顺序并不是按照数字大小执行的而是按照ascii码表排序的顺序(数字、大写字母、小写字母)执行,数字只是为了好识别启动顺序,自己创建文件要注意。

运行级文件
每个被chkconfig 管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。

  • 第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。

  • 第二行对服务进行描述,可以用 跨行注释

# chkconfig: 2345 61 39 
# description: Apache
表明这个脚本应该在运行级 2, 3, 4, 5 启动,启动顺序为61,停止顺序为39。先启动的服务比较重要,停止顺序要靠后

当服务启动脚本(开机自启)有问题是会导致系统启动不起来,可以查看系统启动界面,看在哪个服务启动后无法启动,然后进入单用户模式下,找到那个服务禁止自启动,等机器启动后再排查错误。

相关内容

    暂无相关文章