Linux初始化:系統(tǒng)V的Init過程
的LINUX init的差別。Init是由核心在系統(tǒng)boot時運行的程序。由它負(fù)責(zé)啟動所有的需
要在boot時運行的進(jìn)程。其中包括供您登入的getty,NFS守護(hù)進(jìn)程,F(xiàn)TP守護(hù)進(jìn)程,
以及任何需要機器在boot時啟動的進(jìn)程。
Sys V init迅速成為LINUX世界中boot時啟動進(jìn)程的標(biāo)準(zhǔn)。因為它比BSDinit更容易使
用也更為強大和靈活。
Sys V init與BSD init不同,其配置文件位于/etc下面的一個名為rc.d子目錄中,而不是直
接放在/etc下。在rc.d下您會發(fā)現(xiàn)rc.sysinit以及以下目錄:
init.d
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
init.d下面有許多腳本程序。一般來說,針對每一項需要在boot或轉(zhuǎn)變運行級時啟動
的服務(wù)均需要一個腳本程序。這些服務(wù)包括網(wǎng)絡(luò),NFS,sendmail,httpd等等。
服務(wù)中不包括那些象setserial一樣只運行一次就退出的命令。而那些東西應(yīng)當(dāng)放在
rc.local或rc.serial中。如果您需要rc.local的話,就把它放在/etc/rc.d下。大多數(shù)系統(tǒng)都包括
這樣一個腳本,即便也沒什么用。您需要的話還可以在/etc/rc.d下放置一個rc.serial,
用于boot時做與串口相關(guān)的操作。事件的執(zhí)行過程是這樣的:
系統(tǒng)核心在幾個地方查找init并開始執(zhí)行第一個發(fā)現(xiàn)的init。
由init來執(zhí)行/etc/rc.d/rc.sysinit
rc.sysinit執(zhí)行了一系列的操作后接著運行rc.serial(如果存在的話)
由init執(zhí)行所有默認(rèn)運行級下的腳本程序
init執(zhí)行rc.local
默認(rèn)的運行級由/etc/inittab控制。在該文件前面應(yīng)有一行:
id:3:initdefault:
對于大多數(shù)系統(tǒng),您將會發(fā)現(xiàn)第二列的值被設(shè)置為3,也就是默認(rèn)運行級為3。如果您
想改變默認(rèn)運行級,就編輯/etc/inittab,將3改為其它數(shù)值。對于這種操作一定要小心。
如果您搞糟了,可以重新啟動機器并執(zhí)行如下操作:
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
您會發(fā)現(xiàn)這個目錄下沒有“真正”的文件。全都是一些指向init.d目錄下腳本的符號連接
。符號連接由字母“S”或“K”和字母組成,S表示啟動某個腳本而K表示停止。
這里的數(shù)字僅用來安排執(zhí)行的先后次序。Init將依次啟動所有的服務(wù)。數(shù)字可以重復(fù),
但這只會把自己給搞糊涂。您只需使用兩位數(shù)字連同大寫的“S”或“K”來指示啟動
或停止服務(wù)。
Init是如何啟動和停止服務(wù)的呢?很簡單,每個腳本被書寫成接受一個“start”或
“stop”的參數(shù)。實際上您可以以手工的執(zhí)行以下的命令:
/etc/rc.d/init.d/httpd.init stop
來停止httpd服務(wù)器。Init僅僅讀出文件名,如果它有字母“K”就以stop為參數(shù)調(diào)用該腳
本,而有字母“S”時就以stop為參數(shù)調(diào)用該腳本。那么為什么設(shè)置那么多的運行級呢?
一些人是想將機器設(shè)置成為多種目的服務(wù)。比如我可以有一個僅運行httpd,sendmail,
網(wǎng)絡(luò)服務(wù)等的運行級,還可以有一個只運行xdm,網(wǎng)絡(luò)服務(wù)等的運行級。
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服務(wù)
3
全功能多用戶模式
6
重新啟動機器
如果您的機器進(jìn)入了這樣一種狀態(tài),系統(tǒng)由于損壞的/etc/inittab而不能boot,由于受損
的/etc/p
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解