1. 程式人生 > >設定開機啟動、chkconfig命令詳解

設定開機啟動、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