Linux根文件系統:/etc/inittab文件分析

1. /etc/inittab文件的做用

Linux內核啓動完成後,內核經過啓動第一個用戶進程(init進程)來啓動其餘用戶記的進程或服務,init進程是Linux系統中全部進程的父進程。shell

init進程將解析inittab文件,運行操做系統的配置腳本,對Linux系統進行初始化。服務器

2. /etc/inittab文件的格式分析

inittab文件是一個不可執行的文本文件,它被按照固定的格式書寫,以供init進程識別。inittab的每一行都是一個登記項,每一個登記項的結構都相同,具體以下:ide

identifier :  run_level  :  action  :  process
(1)identifier  
identifier登記項標識符,最多爲4個字符。用於唯一地標識/etc/inittab文件中的每個登記項。

(2)run_level  spa

run_level系統運行級,用於指定相應的登記項在哪個運行級中被處理。若是該字段爲空,那麼相應的登記項將適用於全部的運行級。在該字段中,能夠同時指定一個或多個運行級,其中各運行級分別以數字0.1.2.3.4.5.6表示,且無需對其進行分隔。操作系統

runlevel   0             設計

讓init關閉全部進程並終止系統。rest

runlevel   1blog

用來將系統轉到單用戶模式,單用戶模式只能有系統管理員進入,在該模式下處理那些在有登陸用戶的狀況下不能進行更改的文件,改runlevel的編號1也能夠用S代替。進程

runlevel   2ip

容許系統進入多用戶的模式,但並不支持文件共享,這種模式不多應用。

runlevel   3

最經常使用的運行模式,主要用來提供真正的多用戶模式,也是多數服務器的缺省模式。

runlevel   4

通常不被系統使用,用戶能夠設計本身的系統狀態並將其應用到runlevel。

runlevel   5

將系統初始化爲專用的X Window終端。對功能強大的Linux系統來講,這並非好的選擇,但用戶若是須要這樣,也能夠經過在runlevel啓動來實現該方案。

runlevel   6

關閉全部運行的進程並從新啓動系統。

(3)action

action字段描述其後的process的運行方式。經常使用的action字段以下:

respawn

init應該監視這個進程,即便其結束後也應該被從新啓動。

wait

init應該運行這個進程一次,並等待其結束後再進行下一步操做。

once

init只運行一次該進程。

boot

系統啓動時運行該進程。

bootwait

在系統啓動時運行,init等待進程完成。

ctrlaltdel

當Ctrl+Alt+Del三個鍵同時按下時運行,把SIGINT信號發送給init。

sysinit

在運行boot或bootwait進程以前運行。

powerfail

當init收到SIGPWR信號時運行。

powerokwait

當收到SIGPWD信號且/etc/文件中的電源狀態包含OK時運行。

powerwait

當收到SIGPWD信號,而且init等待進程結束時運行。

(4)process

process字段,表示所要執行的shell命令。任何合法的shell語法均適用於該字段。

3. 舉例

簡易的inittab文件,示例以下:

 

#first:run the system script file::sysinit:/etc/init.d/rcS         #系統開機或從新啓動,執行rcS文件::askfirst:-/bin/login   #系統啓動後,運行登陸程序::ctrlaltdel:-/sbin/reboot   #按下組合鍵「ctrl+alt+del」,重啓Linux系統#umount all filesystem::shutdown:/bin/umount -a -r   #系統關機時,卸載全部文件系統#restart init process::restart:/sbin/init                    #重啓init進程
相關文章
相關標籤/搜索