1. 程式人生 > >原始碼編譯安裝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。先啟動的服務比較重要,停止順序要靠後

當服務啟動指令碼(開機自啟)有問題是會導致系統啟動不起來,可以檢視系統啟動介面,看在哪個服務啟動後無法啟動,然後進入單使用者模式下,找到那個服務禁止自啟動,等機器啟動後再排查錯誤。