歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux學習筆記_5_Linux引導流程解析_2_inittab文件剖析及系統啟動流程分析

Linux學習筆記_5_Linux引導流程解析_2_inittab文件剖析及系統啟動流程分析

日期:2017/3/1 13:37:06   编辑:關於Linux

inittab文件剖析

【inittab文件格式】: id:runlevels:action:process

【過濾掉以#開頭的行 :grep -v “^#” /etc/inittab | more】

id: 標識符,一般為兩位數字或字母,是獨一無二的

runlevels: 運行級別,可以指定多個,如果此處為空,則表示從0~6各個運行級別都執行

action: 指定運行狀態

process: 制定運行的腳本或命令,最重要

正文分析:

語句1: id:5:initdefault:

initdefault: 系統指定缺省啟動的運行級別,系統默認啟動的指令

5: 可以將其改為3默認啟動字符界面,而不用啟動圖形界面

語句2: si::sysinit:/etc/rc.d/rc.sysinit

/etc/rc.d/rc.sysinit作用:完成系統服務程序的啟動,如:系統環境變量設置系統時鐘設置,加載字體,檢查加載文件系統,生成系統啟動信息日志。。。 【Shell腳本,run at once boot time】

sysinit:系統啟動執行process中的指令,無論哪個運行級別,只要系統啟動, 這個服務就會啟動

語句3: /etc/rc.d/rc

作用: 根據前文,判斷默認運行級別調用/etc/rc.d/rc腳本,執行下面相應運行級別的目錄中的服務程序,完成相應運行級別的初始化設置。

語句4: /etc/rc.d/rc[0123456].d //【Ubuntu中為/etc/rcN.d】

分別存放對應於運行級別的服務程序腳本的符號軟鏈接,

鏈接到init.d目錄中的相應腳本

S-start: 系統啟動時依次加載這些服務

K-kill : 系統關機時依次關閉這些服務【如果將文件名更改,則不會啟動】

數字: 表示啟動順序,數字越小,越優先啟動

腳本名稱: 如:vmware

如果不想啟動此服務只需將其改名即可,如:

rm S03-vmware-tools s03-vmware-tools //其不會自動啟動

action常用取值:

1、 initdefault,sysinit

2、 wait:執行process中指定的命令,並等其結束再運行其他命令

once:執行process中指定的命令,不等待其結束

3、 ctrlaltdel:按下Ctrl+Alt+Del時執行process指定

4、 respawn:一但process指定的命令運行終止,則重新運行該命令

5、 powerfail:當出現電源錯誤時執行process指定的命令,不等待其結束

powerokwait:當電源恢復時執行process指定的 命令的命令

/etc/rc.d/init.d 【Ubuntu中為:/etc/init.d】

該目錄保存了各運行級別的啟動腳本。這樣我們就可以手工啟動/關閉系統中任何一個服務

如:手動啟動ssh /etc/rc.d/init.d/sshd #提示選項信息

#另:Ubuntu中 : /etc/init.d/ssh

設置自啟動程序:

法1、生成軟鏈接 ln -s

如: 寫一個腳本程序 vim /etc/rc.d/init.d/msg.sh

data >> /root/msg.today

who >> /root/msg.today

free >> /root/msg.today

chmod u+x /etc/rc.d/init.d/msg.sh

ln -s /etc/rc.d/init.d/msg.sh /etc/rc.d/rc4.d/S100msg.sh //生成軟鏈接

法2、chkconfig: 只能更改系統默認安裝的服務

直接敲擊chkconfig會列出其用法,用法非常直觀簡單 ,需要安裝!

chkconfig --list 會列出在各個運行級別下缺省狀態下所有的服務程序

chkconfig --list sshd 只是顯示sshd的啟動情況

。。。

法3、ntsysv

如果敲擊ntsysv則是更改當前運行級別的啟動設置

其他運行級別:ntsysv -- levels 3

比較簡單直觀,需要安裝!【很多UNIX系統並沒有這個服務】

命令相關應用:

1、dmesg:查看啟動所有信息,查看硬件是否被內核所識別

dmesg | grep eth0 // 查看加載信息

dmesg | grep sda // 查看第一塊硬盤加載信息

2、系統所有的目錄文件都保存在/var/log文件目錄下

Linux啟動流程總圖:

firmware 【CMOS/BIOS】 --POST家電自檢【軟/硬件時鐘同步,NTP】

|

BootLoader 【GRUB】【Windows中:NTLDR】:載入內核

| root--/boot

| kernel

| initrd

|

Kernel ? Hardware

| init PID=1 【父子進程關系】

|

/etc/inittab 文件格式 id:runlevels:action:process

|

initdefault 系統的默認運行級別:1、單用戶模式【安全模式】...

|

/etc/rc.d/rc.sysinit sysinit:系統初始化,無論哪種運行級別,都會運行這個文件

|

/etc/rc.d/rc

|

/etc/rc.d/rcN.d N = 0~6 S-start K-kill

|

username:

passwd:

【另:一定要養成使用幫助的習慣!】

Copyright © Linux教程網 All Rights Reserved