Inittab-Linux / Unix命令

inittab - 由sysv兼容的init進程使用的inittab文件的格式

描述

inittab文件描述了在啟動時和正常操作期間啟動哪些進程(例如/etc/init.d/boot,/etc/init.d/rc,gettys ...)。 Init (8)區分多個運行級別 ,每個運行級別都可以擁有自己的一組啟動的進程。 按需輸入的有效運行級別為0 - 6ABC. inittab文件中的條目具有以下格式:

ID:運行級別:動作:過程

以'#'開始的行被忽略。

id是1-4個字符的唯一序列,它標識inittab中的條目(對於使用庫<5.2.18或a.out庫編譯的,限制為2個字符的sysvinit版本)。

注意:對於gettys或其他登錄進程, id字段應該是相應tty的tty後綴,例如1代表tty1 。 否則,登錄帳戶可能無法正常工作。

運行級別列出了應該採取指定操作的運行級別。

行動描述了應採取的行動。

進程指定要執行的進程。 如果進程字段以“+”字符開頭,則init不會為該進程執行utmp和wtmp記帳。 這是gettys堅持要做自己的utmp / wtmp家務所需要的。 這也是一個歷史性的錯誤。

runlevels字段可能包含不同運行級別的多個字符。 例如, 123指定應該在運行級1,2和3中啟動進程。ondemand條目的運行級可能包含ABC. sysinitbootbootwait條目的runlevels字段將被忽略。

當系統運行級別發生變化時,任何未針對新運行級別指定的正在運行的進程都將首先使用SIGTERM,然後使用SIGKILL進行處理。

操作字段的有效操作是:

重生

該過程將在終止時重新啟動(例如,getty)。

等待

當進入指定的運行級別並且init將等待其終止時,該進程將啟動一次。

一旦

當輸入指定的運行級別時,該進程將被執行一次。

該過程將在系統引導期間執行。 運行級別字段被忽略。

bootwait

該進程將在系統引導期間執行,而init將等待其終止(例如/ etc / rc)。 運行級別字段被忽略。

這什麼都不做。

一經請求

只要調用指定的ondemand運行級別,就會執行標有ondemand runlevel的進程。 但是,不會發生運行級別更改( 按需運行級別為“a”,“b”和“c”)。

默認運行級別

initdefault項指定係統啟動後應該輸入的運行級別。 如果不存在, init將在控制台上要求運行級別。 過程字段被忽略。

SYSINIT

該過程將在系統引導期間執行。 它將在任何引導bootwait條目之前執行。 運行級別字段被忽略。

powerwait

該過程將在電源關閉時執行。 Init通常通過與連接到計算機的UPS進行通話的過程來了解此情況。 在繼續之前, Init將等待該過程完成。

POWERFAIL

至於powerwait ,除了init不等待進程完成。

powerokwait

只要init通知電源已恢復,此過程將立即執行。

powerfailnow

init被告知外部UPS的電池幾乎為空並且電源出現故障時(假定外部UPS和監控進程能夠檢測到這種情況),將執行此過程。

ctrlaltdel

該進程將在init收到SIGINT信號時執行。 這意味著系統控制台上的某個人按下了CTRL-ALT-DEL組合鍵。 通常,人們想要執行某種關機操作 ,以進入單用戶級別或重新啟動機器。

kbrequest

init從鍵盤處理程序接收到控制台鍵盤上按下特殊組合鍵的信號時,該進程將被執行。

此功能的文檔尚未完成; 更多的文檔可以在kbd-x.xx包中找到(最新的文章是在撰寫本文時為kbd-0.94)。 基本上你想要將一些鍵盤組合映射到“KeyboardSignal”動作。 例如,要為此目的映射Alt-Uparrow,請在鍵盤映射文件中使用以下內容:

alt鍵碼103 =鍵盤信號

例子

這是一個類似於舊版Linux inittab的inittab示例:

#inittab for linux id:1:initdefault:rc :: bootwait:/ etc / rc 1:1:respawn:/ etc / getty 9600 tty1 2:1:respawn:/ etc / getty 9600 tty2 3:1:respawn:/ etc / getty 9600 tty3 4:1:重生:/ etc / getty 9600 tty4

此inittab文件在啟動過程中執行/ etc / rc ,並在tty1-tty4上啟動gettys。

一個更詳細的inittab,它具有不同的運行級別(請參閱裡面的註釋):

#在id:2中運行的級別:initdefault:#系統初始化之前。 si :: sysinit:/etc/rc.d/bcheckrc#運行級別0,6暫停並重啟,1為維護模式。 l0:0:wait:/etc/rc.d/rc.halt l1:1:wait:/etc/rc.d/rc.single l2:2345:wait:/etc/rc.d/rc.multi l6: 6:等待:/etc/rc.d/rc.reboot#在“3指敬禮”處做什麼。 ca :: ctrlaltdel:/ sbin / shutdown -t5 -rf now#運行級別2和3:控制台上的getty,級別3也在調製解調器端口上運行getty。 1:23:respawn:/ sbin / getty tty1 VC linux 2:23:respawn:/ sbin / getty tty2 VC linux 3:23:respawn:/ sbin / getty tty3 VC linux 4:23:respawn:/ sbin / getty tty4 VC linux S2:3:respawn:/ sbin / uugetty ttyS2 M19200

也可以看看

init (8), telinit 8)

重要提示:使用man命令( %man )查看特定計算機上的命令使用方式。