CLFS Embedded啟動指令碼簡介

2021-04-18 15:32:23 字數 2906 閱讀 8832

clfs-embedded

的啟動指令碼包括以下檔案

/etc/inittab

/etc/rc.d/shutdown

/etc/rc.d/startup

/etc/rc.d/init.d/functions

/etc/rc.d/init.d/network

/etc/rc.d/init.d/sshd

/etc/rc.d/init.d/syslog

linux

核心初始化完成後,執行

init

作為系統的第乙個程序

,init

讀取inittab,

並按照inittab

的指示呼叫初始化程式

. # inittab  ::sysinit:/etc/rc.d/startup     #

這一行指出

init

將呼叫startup

指令碼做系統初始化

init

呼叫startup,

開始初始化系統

,startup

初始化步驟

: 1.

掛載虛擬檔案系統

/proc,/sysfs;/proc

是乙個只存在於記憶體中的檔案系統

,其作用是為使用者層程式提供乙個介面訪問核心資料,從

/proc

可以獲得系統執行狀態

;/sysfs

也是一種存在於記憶體中的虛擬檔案系統

,sysfs

為每個核心物件建立對應的目錄和檔案

,可以通過

/sys

檢視核心物件

,如系統匯流排裝置等

.接下來將臨時檔案系統掛載到

/dev,

下面的mdev

將在/dev

建立裝置節點,由於

mdev

是每次啟動以後建立裝置節點

,所以不能直接建立在硬碟上

,而是掛載臨時檔案系統供建立節點

,當系統重啟後

,這個臨時檔案系統將不復存在

. 2.

建立裝置節點

,現代的

linux

使用動態建立的方式建立裝置節點

,在普通的

linux

發行版中使用

udev

建立裝置節點

,clfs-embedded

中將使用

busybox

提供的mdev

代替udev

建立裝置節點

. 3.

同步時鐘

,將系統時間與

bios

時間同步

. 4.

磁碟檢測

,這一步檢測根檔案系統

. 5.

將根檔案系統重新掛為可讀寫

,核心初始化時

,已經掛載了根檔案系統

,但那時是以唯讀的方式掛的

,現在將根檔案系統以可讀寫的方式重新掛

. 6.

檢測檔案系統

,不僅僅是根檔案系統

,這裡檢測除了網路檔案系統之後的所有檔案系統

. 7.

設定交換分割槽

(swap),

記憶體總是不夠

,有了交換分割槽之後

,就可以把不常用的資料交換到硬碟上來

. 8.

清除臨時檔案,刪除

/tmp/*

臨時檔案

,建立日誌系統所需要的檔案

. 9.

配置本地網路

(lo),

有些軟體通過本地網路進行程序間通訊

,即使沒有網絡卡也應該配置本地網路

. 10.

執行/etc/rc.d/init.d/start/

下的指令碼

,這裡的指令碼是可能的

,通常在這裡啟動系統服務

,如網路服務

(與外部連線的網路服務,與

lo不同

),系統日誌服務

.

init

呼叫startup

初始化系統之後

,將建立六個虛擬終端供使用者登陸

# inittab

tty1:respawn:/sbin/getty 38400 tty1     #

建立乙個

tty,tty

提供給使用者登陸

.一般共建立6個

tty2:respawn:/sbin/getty 38400 tty2     #respawn

的意思是

init

監視getty

程序的執行

, tty3:respawn:/sbin/getty 38400 tty3     #

如果getty

程序退出了

,將會再次執行

getty

tty4:respawn:/sbin/getty 38400 tty4

tty5:respawn:/sbin/getty 38400 tty5

tty6:respawn:/sbin/getty 38400 tty6

執行到這裡時

,顯示器上將顯示

login:

提示符,

輸入使用者

,tty

將輸入的使用者名稱傳遞給

login

登陸程式

,如果使用者名稱存在

,login

會提示輸入密碼

,login

根據shadow

檔案判斷你輸入的密碼是否正確

,如果正確會開啟乙個

shell,

通常是bash,

在belp

中是ash,

有了shell,

就可以在

shell

中輸入命令

,對系統進行操作啦

.

Oracle 啟動指令碼

大家都注意到用oracle自帶的dbstart指令碼無法在系統啟動時自動啟動oracle資料庫,下面介紹oracle啟動指令碼的編寫和設定!最簡單的指令碼示例 bin sh sqlplus as sysdba oracle instance started.total system global a...

bash啟動指令碼

啟動指令碼是bash啟動時自動執行的指令碼。使用者可以把一些環境變數的設定和alias umask設定放在啟動指令碼中,這樣每次啟動shell時這些設定都自動生效。思考一下,bash在執行啟動指令碼時是以fork子shell方式執行的還是以source方式執行的?啟動bash的方法不同,執行啟動指令...

bash啟動指令碼

啟動指令碼是bash啟動時自動執行的指令碼。使用者可以把一些環境變數的設定和alias umask設定放在啟動指令碼中,這樣每次啟動shell時這些設定都自動生效。思考一下,bash在執行啟動指令碼時是以fork子shell方式執行的還是以source方式執行的?啟動bash的方法不同,執行啟動指令...