1. 程式人生 > 實用技巧 >與Linux初始化相關的程序及配置檔案

與Linux初始化相關的程序及配置檔案

1、init程序

Linux系統中的程序使用數字進行標記,每個程序的身份標記號稱為PID。在引導Linux系統的過程中,“/sbin/init”是核心第一個載入的程式,因此init程序對應的PID號永遠為“1”。

init程序執行以後將陸續執行系統中的其他程式,不斷生成新的程序,這些程序稱為init程序的子程序,反過來說init程序是這些程序的父程序。當然,這些子程序也可以進一步生成各自對的子程序,依次不斷繁衍下去,最終構成一棵枝繁葉茂的程序樹,共同為使用者提供服務。

init程序正是維持整個Linux系統執行的所有程序的“始祖”,因此init程序是不允許被輕易終止的。需要切換不同的系統執行狀態時,可以分配給init程式正確的執行引數,由init自身來完成。

2、inittab配置檔案

inittab檔案位於“/etc”目錄中,是init程式的配置檔案,init程序執行後將按照該檔案中的配置內容依次啟動系統中需要執行的指令碼和程式。

檢視“/etc/inittab”檔案中的有效配置行:

135051953.jpg

在“/etc/inittab”檔案中,除了以“#”號開頭的註釋資訊和空行以外,每一行都視為一條有效配置記錄。每條配置記錄中的四個欄位之間使用半形的冒號“:”進行分割,基本格式如下:

id:runlevels:action:process

意思如下:

標記:執行級別:動作型別:程式或指令碼

各個欄位的作用如下:

id---標記欄位

標記欄位可以由1-4個字元組成,用以區別於其他行的配置。在inittab檔案中每條配置記錄的id標記欄位應是唯一的。

【runlevels---執行級別欄位

在Linux系統中,將各種系統服務程式相互組合構成不同的搭配關係,分別滿足不同的系統需求,系統在執行時,採用的每一種服務搭配稱之為“執行級別”。預設的系統執行級別包括七種,其功能和服務各部相同。

0:關機狀態,使用該級別時將會關閉主機。

1:單使用者模式,不需要密碼驗證即可登入系統,多用於系統維護。

2:字元介面的多使用者模式(不支援網路)。

3:字元介面的完整多使用者模式,大多數伺服器主機的執行在此級別。

4:未分配使用。

5:圖形介面的多使用者模式,提供了圖形桌面操作環境。

6:重新啟動,使用該級別時將會重啟主機。

【action---動作型別欄位

動作型別欄位描述了該行配置所對應的操作類別,一般為固定值,較常用的型別如下:

initdefault:設定初始化系統後預設進入的執行級別。

sysinit:設定系統初始化的操作指令碼。

wait:init程序將等待該行配置所對應的指令碼操作完成後,再繼續執行其他操作。

ctrlaltdel:設定當用戶按下Ctrl+Alt+Delete組合鍵後的操作。

powerokwait:設定當系統收到恢復供電訊號時採取何種動作。

respawn:一旦該行配置所對應的程序被終止,則重新啟動該程序。

process---程式或指令碼欄位

此欄位用於指定該行配置所對應的實際操作,可以是具體的命令、指令碼程式等。

3、rc.sysinit指令碼檔案

rc.sysinit是init程序所呼叫的系統初始化指令碼,位於“/etc/rc.d/rc.sysinit”,這也是在inittab配置檔案中設定好的。rc.sysinit指令碼主要完成包括設定網路、主機名、載入檔案系統、設定時鐘等一系列初始化工作。

4、rc指令碼檔案

rc指令碼同樣由init程序進行呼叫,檔案位於“/etc/rc.d/rc”。rc指令碼通過指定不同的級別引數分別載入及終止不同的系統服務,進入到相應的系統執行級別。

在“/etc/rc.d/rc0.d”---“/etc/rc.d/rc6.d”目錄中,儲存了一些特殊的符號連結檔案。rc指令碼根據這些目錄中的連結檔名及其所連結到的系統服務指令碼,進行啟動或終止相關服務程式的操作。

“/etc/rc.d/rcX.d”目錄中的連結檔案具有共同的規律:檔名以K或S開頭,中間是數字序號,最後是系統中的服務指令碼名;所連結的原始服務指令碼檔案位於“/etc/rc.d/init.d”目錄中,其中以S開頭的檔案表示啟動對應的服務,以K開頭的檔案表示終止對應的服務,中間的數字表示在啟動或終止服務時的執行順序。

位於“/etc/rc.d/init.d”目錄中的各種系統服務指令碼,基本上都可以直接執行指令碼檔案或通過“service’服務控制工具進行管理,例如,新增“start”、“stop”、“restart”、“status”等引數完成對應服務的啟動、終止、重啟、查詢狀態等操作。對於系統服務程式,一般建議使用這種方式啟動或終止,而不是使用殺死程序的命令。對處於實際工作環境中的伺服器程式,建議改用“reload”引數重新載入配置,而不是生硬地使用“restart”重啟服務,以免造成客戶端訪問中斷,帶來不必要的損失。

5、rc.local指令碼檔案

rc.local指令碼是一個額外的啟動控制檔案,位於“/etc/rc.d/rc.local”。rc.local指令碼通常由rc指令碼在最後進行載入,其作用主要是為管理員自行設定啟動命令提供一種途徑。需在再開機後自動執行的一些命令操作,都可以新增到該檔案中。

轉載於:https://blog.51cto.com/343308530/1258861