天天看點

linux開機啟動服務和chkconfig使用方法(轉)

每個被chkconfig 管理的服務需要在對應的/etc/rc.d/init.d 下的腳本加上兩行或者更多行的注釋。

第一行告訴 chkconfig 預設啟動的運作級以及啟動和停止的優先級。如果某服務預設不在任何運作級啟動,那麼使用 - 代替運作級。

第二行對服務進行描述,可以用\ 跨行注釋。

例如,random.init 包含三行:

# chkconfig: 2345 20 80

# description: Saves and restores system entropy pool for \

# higher quality random number generation.

表明 random 腳本應該在運作級 2, 3, 4, 5 啟動,啟動優先權為20,停止優先權為 80.

http://www.jb51.net/LINUXjishu/58524.html

1.服務概述 在linux作業系統下,經常需要建立一些服務,這些服務被做成shell腳本,這些服務需要在系統啟動的時候自動啟動,關閉的時候自動關閉。 将需要自動啟動的腳本/etc/rc.d/init.d目錄下,然後用指令chkconfig --add filename将自動注冊開機啟動和關機關閉。實質就是在rc0.d-rc6.d目錄下生成一些檔案連接配接,這些連接配接連接配接到/etc/rc.d/init.d目錄下指定檔案的shell腳本。

在文章linux下Oracle自動啟動與停止(一),linux下Oracle自動啟動與停止(二) 對建立服務有一些描述。

2.手工建立服務 在/etc/rc.d/init.d目錄下建立shell腳本,檔案名auto_run。 設定腳本的運作權限chmod +x auto_run。 然後在rc0.d-rc6.d目錄下分别建立檔案連接配接。 ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc2.d/S99auto_run ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc3.d/S99auto_run ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc5.d/S99auto_run ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc0.d/K01auto_run ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc6.d/K01auto_run

這樣系統在啟動的時候,就會運作auto_run 并加上start參數,等同于執行指令auto_run start。 在系統關閉的時候,就會運作auto_run,并加上stop參數,等同于運作指令auto_run stop。

建立連接配接的6條指令可以用指令chkconfig --add auto_run來完成,這樣就簡單多了,還不容易出錯。 下面就介紹一下chkconfig指令。

3.chkconfig指令用法 文法: chkconfig --list [name] chkconfig --add name chkconfig --del name chkconfig [--level levels] name <on|off|reset> chkconfig [--level levels] name

說明: chkconfig提供一種簡單的指令行工具來幫助管理者對/etc/rc[0-6].d目錄層次下的衆多的符号連結進行直接操作。 此指令使用是由chkconfig指令在IRIX作業系統提供授權。不用在/etc/rc[0-6].d目錄下直接維護配置資訊,而是直接在/etc/rc[0-6]下管理連結檔案。在運作級别的目錄下的配置資訊通知在将會初始啟動哪些服務。 Chkconfig有五個很明确的功能:為管理增加一個新的功能、删除一個功能、列出目前服務的啟動資訊、改變一個服務的啟動資訊和檢測特殊服務的啟動狀态。 當chkconfig沒有參數運作時,它将顯示其使用方法。如果隻給出了一個服務名,它将檢測這個服務名是否已經被配置到了目前運作級别中。如果已經配置,傳回真,否則傳回假。--level選項可以被用做查詢多個運作級别而不僅僅是一個。        如果在服務名之後指定了on,、off或reset,chkconfig将改變指定服務的啟動資訊。On或off标記服務被打開或停止,尤其是在運作級别被改變時。Reset标記重置服務的啟動資訊。        預設情況下,on或off選項僅對2、3、4、5有影響,而 reset影響所有的運作級。--level選項可以被用于指定哪個運作級别接收影響。 注意:對于每個服務,每一個運作級都有一個開始角本和一個結束角本。當開或關一個運作級時,init不會重新開始一個已經運作的服務,也不會重新停止一個未運作的服務。 選項:        --level levels               指定一個運作級别适合的操作。範圍為0-7。        --add name               增加一個新的服務。        --del name               删除一個服務        --list name               顯示服務的情況 RUNLEVEL FILES 每個通過chkconfig管理的服務在其init.d目錄下的角本中都需要兩行或多行的注釋。第一行告訴chkconfig在預設情況下什麼運作級别的服務可以開始,也就是所說的開始或結束的優先級别。如果服務沒有預設的級别,建造将在所有運作級别中啟動。a – 将用于代替運作級清單。第二個注釋行包括對此服務的描述,可以通過反斜線符号擴充為多行。

示例,auto_run的前三行如下: #!/bin/sh #chkconfig: 2345 80 90 #description:auto_run 第一行,告訴系統使用的shell,是以的shell腳本都是這樣。 第二行,chkconfig後面有三個參數2345,80和90告訴chkconfig程式,需要在rc2.d~rc5.d目錄下,建立名字為S80auto_run的檔案連接配接,連接配接到/etc/rc.d/init.d目錄下的的auto_run腳本。第一個字元是S,系統在啟動的時候,運作腳本auto_run,就會添加一個start參數,告訴腳本,現在是啟動模式。同時在rc0.d和rc6.d目錄下,建立名字為K90auto_run的檔案連接配接,第一個字元為K,個系統在關閉系統的時候,會運作auto_run,添加一個stop,告訴腳本,現在是關閉模式。 注意上面的三行是中,地二,第三行是必須的,否則在運作chkconfig --add auto_run時,會報錯。

4.常見的錯誤 “服務不支援 chkconfig”: 請注意檢查腳本的前面,是否有完整的兩行: #chkconfig: 2345 80 90 #description:auto_run 在腳本前面這兩行是不能少的,否則不能chkconfig指令會報錯誤。 如果運作chkconfig老是報錯,如果腳本沒有問題,我建議,直接在rc0.d~rc6.d下面建立到腳本的檔案連接配接來解決,原理都是一樣的。

http://blog.csdn.net/chenxiaohua/article/details/4056302

Linux系統有7個運作級别(runlevel) 運作級别0:系統停機狀态,系統預設運作級别不能設為0,否則不能正常啟動 運作級别1:單使用者工作狀态,root權限,用于系統維護,禁止遠端登陸 運作級别2:多使用者狀态(沒有NFS) 運作級别3:完全的多使用者狀态(有NFS),登陸後進入控制台指令行模式 運作級别4:系統未使用,保留 運作級别5:X11控制台,登陸後進入圖形GUI模式 運作級别6:系統正常關閉并重新開機,預設運作級别不能設為6,否則不能正常啟動

運作級别的原理: 1。在目錄/etc/rc.d/init.d下有許多伺服器腳本程式,一般稱為服務(service) 2。在/etc/rc.d下有7個名為rcN.d的目錄,對應系統的7個運作級别 3。rcN.d目錄下都是一些符号連結檔案,這些連結檔案都指向init.d目錄下的service腳本檔案,命名規則為K+nn+服務名或S+nn+服務名,其中nn為兩位數字。 4。系統會根據指定的運作級别進入對應的rcN.d目錄,并按照檔案名順序檢索目錄下的連結檔案      對于以K開頭的檔案,系統将終止對應的服務      對于以S開頭的檔案,系統将啟動對應的服務 5。檢視運作級别用:runlevel 6。進入其它運作級别用:init N 7。另外init0為關機,init 6為重新開機系統

http://blog.csdn.net/chenxiaohua/article/details/4054861

繼續閱讀