歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux初始化:系統V的Init過程

Linux初始化:系統V的Init過程

日期:2017/2/27 9:41:27   编辑:更多Linux

簡要講述boot的內部過程。基本上詳細描述了Sys V init的boot過程及與以往版本 的Linux init的差別。Init是由核心在系統boot時運行的程序。由它負責啟動所有的需 要在boot時運行的進程。其中包括供您登入的getty,NFS守護進程,FTP守護進程, 以及任何需要機器在boot時啟動的進程。 Sys V init迅速成為LINUX世界中boot時啟動進程的標准。因為它比BSDinit更容易使 用也更為強大和靈活。 Sys V init與BSD init不同,其配置文件位於/etc下面的一個名為rc.d子目錄中,而不是直 接放在/etc下。在rc.d下您會發現rc.sysinit以及以下目錄: init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d init.d下面有許多腳本程序。一般來說,針對每一項需要在boot或轉變運行級時啟動 的服務均需要一個腳本程序。這些服務包括網絡,NFS,sendmail,httpd等等。 服務中不包括那些象setserial一樣只運行一次就退出的命令。而那些東西應當放在 rc.local或rc.serial中。如果您需要rc.local的話,就把它放在/etc/rc.d下。大多數系統都包括 這樣一個腳本,即便也沒什麼用。您需要的話還可以在/etc/rc.d下放置一個rc.serial, 用於boot時做與串口相關的操作。事件的執行過程是這樣的: 系統核心在幾個地方查找init並開始執行第一個發現的init。 由init來執行/etc/rc.d/rc.sysinit rc.sysinit執行了一系列的操作後接著運行rc.serial(如果存在的話) 由init執行所有默認運行級下的腳本程序 init執行rc.local 默認的運行級由/etc/inittab控制。在該文件前面應有一行: id:3:initdefault: 對於大多數系統,您將會發現第二列的值被設置為3,也就是默認運行級為3。如果您 想改變默認運行級,就編輯/etc/inittab,將3改為其它數值。對於這種操作一定要小心。 如果您搞糟了,可以重新啟動機器並執行如下操作: LILO boot: linux single 這可以使您以單用戶方式boot,以修正inittab文件。 那麼,那些腳本是如何運行的呢?您在rc3.d下鍵入ls -l 會看到下列文件: lrwxrwxrwx 1 root root 17 3:11 S10network -> ../init.d/network lrwxrwxrwx 1 root root 16 3:11 S30syslog -> ../init.d/syslog lrwxrwxrwx 1 root root 14 3:32 S40cron -> ../init.d/cron lrwxrwxrwx 1 root root 14 3:11 S50inet -> ../init.d/inet lrwxrwxrwx 1 root root 13 3:11 S60nfs -> ../init.d/nfs lrwxrwxrwx 1 root root 15 3:11 S70nfsfs -> ../init.d/nfsfs lrwxrwxrwx 1 root root 18 3:11 S90lpd -> ../init.d/lpd.init lrwxrwxrwx 1 root root 11 3:11 S99local -> ../rc.local 您會發現這個目錄下沒有“真正”的文件。全都是一些指向init.d目錄下腳本的符號連接 。符號連接由字母“S”或“K”和字母組成,S表示啟動某個腳本而K表示停止。 這裡的數字僅用來安排執行的先後次序。Init將依次啟動所有的服務。數字可以重復, 但這只會把自己給搞糊塗。您只需使用兩位數字連同大寫的“S”或“K”來指示啟動 或停止服務。 Init是如何啟動和停止服務的呢?很簡單,每個腳本被書寫成接受一個“start”或 “stop”的參數。實際上您可以以手工的執行以下的命令: /etc/rc.d/init.d/httpd.init stop 來停止httpd服務器。Init僅僅讀出文件名,如果它有字母“K”就以stop為參數調用該腳 本,而有字母“S”時就以stop為參數調用該腳本。那麼為什麼設置那麼多的運行級呢? 一些人是想將機器設置成為多種目的服務。比如我可以有一個僅運行httpd,sendmail, 網絡服務等的運行級,還可以有一個只運行xdm,網絡服務等的運行級。 11.9.3 Init 的運行級 Generally, Red Hat Linux runs in run level 3---full multiuser mode. The following runlevels are used in Red Hat Linux: 0 停機t. 1 單用戶模式 2 多用戶模式,但不提供NFS服務 3 全功能多用戶模式 6 重新啟動機器 如果您的機器進入了這樣一種狀態,系統由於損壞的/etc/inittab而不能boot,由於受損 的/etc/passwd而不能登入,或者干脆就是忘記了口令。在LILO boot 提示符下鍵入 linux 1 而boot進入單用戶模式,這是一個幾乎沒有裝載任何服務的狀態,您可以 在提供的shell下執行修復命令。




Copyright © Linux教程網 All Rights Reserved