設定開機啟動、chkconfig命令詳解
chkconfig用於設定系統的各種服務
語法:chkconfig [--add][--del][--list][系統服務]或chkconfig [--level<等級代號>][系統服務][on/off/reset]
引數用法:
--add 增加所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述檔案內增加相關資料。
--del 刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啟動的敘述檔案內刪除相關資料。
--level<等級代號> 指定讀系統服務要在哪一個執行等級中開啟或關畢。
等級0表示:表示關機
等級1表示:單使用者模式
等級2表示:無網路連線的多使用者命令列模式
等級3表示:有網路連線的多使用者命令列模式
等級4表示:不可用
等級5表示:帶圖形介面的多使用者模式
等級6表示:重新啟動
需要說明的是,level選項可以指定要檢視的執行級而不一定是當前執行級。對於每個執行級,只能有一個啟動指令碼或者停止指令碼。當切換執行級時,init不會重新啟動已經啟動的服務,也不會再次去停止已經停止的服務。
chkconfig --list [name]:顯示所有執行級系統服務的執行狀態資訊(on或off)。如果指定了name,那麼只顯示指定的服務在不同執行級的狀態。
chkconfig --add name:增加一項新的服務。chkconfig確保每個執行級有一項啟動(S)或者殺死(K)入口。如有缺少,則會從預設的init指令碼自動建立。
chkconfig --del name:刪除服務,並把相關符號連線從/etc/rc[0-6].d刪除。
chkconfig [--level levels] name:設定某一服務在指定的執行級是被啟動,停止還是重置。
應用:
apache開機啟動:
linux開啟啟動的程式一般放在/etc/rc.d/init.d/裡面,/etc/init.d/是其軟連線
所以複製apache啟動項都/etc/init.d中:
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
在在#!/bin/sh後面加入下面兩行(注意:不加下面兩行,開機啟動將無效,2345表示在2345執行級別上啟動apache)
#chkconfig:345 85 15
#description: Start and stops the Apache HTTP Server.
chmod +x /etc/init.d/httpd #給所有使用者增加該檔案的執行許可權
chkconfig --add httpd #給系統新增httpd服務
mysql開機啟動:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 2345 mysql on
Ubuntu的開機啟動項設定:
從所有的執行級別中刪除指定啟動項
update-rc.d -f remove
按指定順序、在指定執行級別中啟動或關閉
update-rc.d start|stop
例項:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .
解析:表示在2、3、4、5這五個執行級別中,由小到大,第20個開始執行apachectl;在 0 1 6這3個執行級別中,第20個關閉apachectl。這是合併起來的寫法,注意它有2個點號,效果等於下面方法:
update-rc.d apachectl defaults
A啟動後B才能啟動,B關閉後A才關閉
update-rc.d A defaults 80 20
update-rc.d B defaults 90 10
啟動和關閉順序為90,級別預設
update-rc.d defaults 90