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


1. /etc/inittab文件的作用

Linux內核啟動完成后,內核通過啟動第一個用戶進程(init進程)來啟動其他用戶記的進程或服務,init進程是Linux系統中所有進程的父進程。

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

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

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

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

(2)run_level  

run_level系統運行級,用於指定相應的登記項在哪一個運行級中被處理。如果該字段為空,那么相應的登記項將適用於所有的運行級。在該字段中,可以同時指定一個或多個運行級,其中各運行級分別以數字0.1.2.3.4.5.6表示,且無需對其進行分隔。

runlevel   0             

讓init關閉所有進程並終止系統。

runlevel   1

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

runlevel   2

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

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進程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM