Linux操作系統啓動流程以及系統關機命令
一. Linux操作系統啓動流程
- 系統啓動流程
2.配置文件/etc/inittab的基本格式
label:runlevel:action:process
Label一般是1-2個字符的標籤,用來標示輸入的值。Red Hat Linux中常用的標籤是:
id :用來定義缺省的init運行的級別 si :是系統初始化的進程 ln: 其中的n從1~6,指明該進程可以使用的runlevel的級別 ca: 指明當按下Ctrl+Alt+Del時運行的進程 pf :指“當UPS表明斷電”時運行的進程 pr :是在系統真正關閉之前,UPS發出電源恢復的信號時需要運行的進程 x :是將系統轉入X終端時需要運行的進程
runlevel:
``` # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not havenetworking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) ```
action字段定義了該進程應該運行在何種狀態下.下面是其常見取值及含義
``` boot :在系統啓動時運行,忽略runlevel bootwait :在系統啓動時運行,init等待進程完成。忽略runlevel ctrlaltdel :當Ctrl+Alt+Del三個鍵同時按下時運行,把SIGINT信號發送給init initdefault :不要執行這個進程,它用於設置默認runlevel off: 禁止進入,因此該進程不運行 once: 運行一次respawn :不管何時終止都重新啓動進程 sysinit: 在運行boot或bootwait進程之前運行 Wait:需等待其運行完畢在運行其他項 ```
- process
- process字段包含init執行的進程,該進程採用的格式與在命令行下運行該進程的格式一樣
- 因此process字段都以該進程的名字開頭,緊跟着是運行時要傳遞給該進程的參數。比如/sbin/shutdown -t3 -r now,該進程在按下Ctrl+Alt+Del時執行,在命令行下也可以直接輸入來重新啓動系統
3.文件/etc/inittab的一般執行過程
- 例如:在init的配置文件中有這麼一行:
si::sysinit:/etc/rc.d/rc.sysinit
- rc.sysinit是每一個運行級別都要首先運行的重要腳本。它主要是完成一些系統初始化的工作
- 它主要完成的工作有:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務
- 當rc.sysinit程序執行完畢後,將返回init繼續下一步
- 啓動對應運行級別的守護進程
- 建立終端
二.系統關機命令
shutdown命令
- shutdown命令通常必須由超級用戶才能執行
- shutdown命令執行後,會以廣播的形式通知正在系統中工作的所有用戶,系統將在指定的時間內關閉,請用戶保存文件,停止作業,註銷用戶。此時login指令被凍結,新的用戶不能登錄
shutdown命令的詳細語法如下: shutdown [-fFhknc(參數名稱)] [-t秒數] 時間 [警告信息] 各參數含義如下: -f:重啓系統時不執行fsck。 -F:重啓時執行fsck。 -h:將系統關閉。相當於halt命令。 -k:只是送出信息給所有用戶,但不會真正關機。 -n: 不調用init程序關機,而是由shutdown自己進行(一般關機程序是由shutdown調用init來實現關機動作的),使用此參數將加快關機速度,但是不建議用戶使用此種關機方式。 -r:shutdown之後重新啓動系統。 -c:取消一個shutdown命令。 例如,當執行一個“shutdown -h 15:30”的命令時,只要按“Ctrl+C”組合鍵就可以中斷關機的命令; 而執行如“shutdown -h 15:30 &”的命令時,就將shutdown轉到後臺運行了,此時就需要用“shutdown -c”將前一個shutdown命令取消。 -t<秒數>:送出警告信息和關機信號之間要延遲多少秒。 [時間]:設置多久後執行shutdown命令。時間參數有hh:mm或+m兩種模式。比較特別的用法是以now表示立即執行shutdown。 [警告信息]:要傳送給所有登錄用戶的信息。
應用舉例
1)在16:50執行shutdown關機:“shutdown 16:50” 2)重啓系統:#shutdown -r now 3)立即關機: #shutdown -h now 4)設定5分鐘後關機,同時發出警告信息給登錄用戶: #shutdown +5 "System will shutdown after 5 minutes"
halt命令
- halt是最簡單的關機命令,相當於“shutdown -h”組合。halt’執行時,將殺死所有應用程序,然後調用系統指令sync。sync將所有內存信息通過文件系統寫入硬盤,然後停止內核
halt指令在執行時,會首先檢測系統的運行級別,如果運行級爲0或6,則立即關閉系統,否則調用shutdown來關閉系統。參數含義如下: [-f]:不管當前系統處於何種運行級別,不調用shutdown而強制關機。 [-i]:關機之前,關掉所有的網絡接口。 [-n]:halt執行時,不調用系統指令sync。 [-p]:關機時調用poweroff,也就是關機時同時關閉電源。此選項爲缺省選項。
reboot命令
- reboot命令的執行過程與halt基本類似,不同的是halt是用於關機,而reboot是關機後引發系統重啓。
init命令
- init程序主要用於系統不用運行級之間的切換。
例如: #init 0就是將系統運行級切換到0,也就是關機; #init 6命令用於將系統運行級切換到6,也就是重啓系統。
- init程序主要用於系統不用運行級之間的切換。