Linux完成內核(Kernel)引導后,會由init初始化進程調用/etc/inittab配置文件(ps -aux | less,init進程號為始終為1,是所有系統進程的起點,init進程也有一個PID為0的父進程Kernel Scheduler,該進程用來分配CPU時間和進行進程間切換。)。
/etc/inittab文件格式:id:run-levels:action:process,共包含4項,用冒號分隔,其中某些部份可以為空,各項詳細解釋如下:
id
標識符,一般為兩位字母或數字,該標識符唯一,在配置文件中不能重復。
run-level
指定系統運行級,即執行登記項的init級別。用於指定相應的登記項適用於哪一個運行級,即在哪一個運行級中被處理。如果該字段為空,那么相應的登記項將適用於所有的運行級。在該字段中,可以同時指定一個或多個運行級,其中各運行級分別以數字0 1 2 3 4 5 6或字母a、b、c 表示,且無需對其進行分隔。
Linux有7個運行級,如下:
0-halt 關機,讓init關閉所有進程並關機
1-Single user mode 單用戶字符界面,通常又稱為s或S
2-Multiuser,without NFS 不具備網絡文件系統功能的多用戶字符界面
3-Full multiuser mode 具備網絡文件系統功能的多用戶字符界面
4-unused 保留不用
5-X11 具備網絡功能的圖形用戶界面
6-reboot 關閉所有運行的進程並重新啟動系統
除此之外還有ABC三個運行級別,但在Linux都沒有意義。
action
指定運行動作,用於指定init(M)命令或進程對相應進程(在“process”字段定義)所實施的動作,有以下幾種:
行為 | 描述 |
respawn
|
一旦第4項指定的process命令中止,便重新運行該命令。 |
wait
|
執行第4項指定的process,並等其結束后再運行其它命令。
|
once
|
執行第4項指定的process,不等待它執行完成,繼續運行其它命令。
|
boot
|
不論在哪個執行等級,系統啟動時都會運行第4項指定的process。
|
bootwait
|
不論在哪個執行等級,系統啟動時都會運行第4項指定的process,且一直等它執行完備。
|
off
|
關閉任何動作,相當於忽略該配置行。
|
ondemand
|
進入ondemand執行等級時,執行第4項指定的process。
|
initdefault
|
系統啟動后進入的執行等級,該行不需要指定process。
|
sysinit
|
不論在哪個執行等級,系統會在執行boot及bootwait之前執行第4項指定的process。
|
powerwait
|
當系統的供電不足時執行第4項指定的 process,且一直等它執行完畢。
|
powerokwait
|
當系統的供電恢復正常時執行第4項指定的process,且一直等它執行完畢。
|
powerfailnow
|
當系統的供電嚴重不足時執行第4項指定的process。
|
powerfail
|
當出現電源錯誤時執行第4項指定的process命令,不等待其結束。
|
ctrlaltdel
|
當用戶按下【Ctrl+Alt+Del】時執行第4項指定的 process。
|
kbrequest
|
當用戶按下特殊的組合鍵時執行第4項指定的process,此組合鍵需在keymaps文件定義。
|
process
指定要運行的Shell腳本/命令。