Linux 初始化系统(系统服务管理和控制程序/Init System) -- System V init(SysV init) 的简单理解
文章目錄
- SysV init 簡介
- SysV init 的缺點
- 運行級別
- 主要文件和目錄的截圖
SysV init 簡介
System V init(縮寫 SysV init)是類 Unix 操作系統中傳統的也是首款初始化系統。
服務配置文件(bash 腳本文件)存放在目錄 /etc/init.d 下 或者目錄 /etc/rc.d/init.d/ 下,可以使用 /etc/rc.d/init.d/daemon [start|stop|restart|reload|status] 方式來管理服務。init 程序的配置文件存放在目錄 /etc/inittab/ 下。
默認的運行級別在 /etc/inittab 文件中定義,當系統以某個運行級別啟動時,會運行 /etc/rc.d/rcN.d/(其中 N 范圍為0~6)目錄中所有的腳本,而這些腳本的命名都是Knnxxxxx或Snnxxxxx,其中S表示系統啟動時調用,K表示系統終止時調用,nn是00~99的數字,數字的大小決定了腳本運行的順序,最后的xxxxx為腳本的名稱(長度任意),這些目錄里的文件都是指向init.d目錄中腳本的軟連接,因為各個運行級別的所需的服務可能存在交集,所以這樣能節省硬盤使用空間。
SysV init 守護進程是一個基于運行級別的系統,它使用運行級別(單用戶、多用戶以及其他更多級別)和鏈接(位于 /etc /rcN.d/ 目錄中,分別鏈接到 /etc/init.d 中的 init 腳本)來啟動和關閉系統服務。SysV啟動是線性、順序的。一個S20的服務必須要等待S19啟動完成才能啟動,如果一個啟動要花很多時間,那么后面的服務就算完全無關,也必須要等。
在SysV init中,服務被分成兩大類,一類是可獨立運行的服務,另一類是受xinetd管理的服務,而xinetd本身是一個獨立運行的服務,用來負責管理一些不常用的服務,當這些服務需要被使用時,由xinetd來喚醒它們,當服務使用完后,這些服務會被結束以減少系統資源的占用。
SysV init 的缺點
SysV 運行時是同步阻塞的
一個腳本運行的時候,后續腳本必須等待。這意味著所有的初始化步驟都是串行執行的,而實際上很多服務彼此并不相關,完全可以并行啟動,從而減小系統的啟動時間。
會啟動大量無用的浪費系統資源的服務進程,無法完美滿足按需啟動服務的需求
啟動腳本復雜。init 進程只是執行啟動腳本,不管其他事情。腳本需要自己處理各種情況,這往往使得腳本變得很長
運行級別
在 SysV init 中,定義了6個運行級別,分別是:
runlevel0 = 關機
runlevel1 = 單用戶模式,僅root
runlevel2 = 帶網絡的單用戶模式
runlevel3 = 多用戶模式,字符界面,標準模式
runlevel4 = 保留
runlevel5 = 多用戶模式,圖形界面,X11(X Window)
runlevel6 = 重啟
主要文件和目錄的截圖
備注:截圖來自 RHEL 7
/etc/inittab:
/etc/rc.d/:(rc.local是一個腳本文件,里面定義了用戶自定義啟動的程序)
/etc/rc.d/rc.local:
/etc/rc.d/init.d/:(文件functions定義了很多函數,供給本目錄里的腳本調用,而文件README是一個說明文件,主要說明“現在的服務由systemd管理,不再推薦使用這些腳本”,剩下的文件都是對應服務的腳本文件)
/etc/rc.d/rc3.d/:
總結
以上是生活随笔為你收集整理的Linux 初始化系统(系统服务管理和控制程序/Init System) -- System V init(SysV init) 的简单理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双头龙是什么意思
- 下一篇: 浅析 Linux 初始化系统(系统服务管