Which keyword is used in the /etc/inittab file to define the SysV-init default system runlevel?
Answer: initdefault
題解
SysV init的設定檔是「/etc/inittab」,格式如下:
id:runlevels:action:process
「id」為1到4個連續的字元,用來辨識該行用的,可以自行決定。「procee」為要執行的指令。
而其中的「action」可能會有以下幾種:
- respawn:行程結束後會重新執行。(例如:getty)
- wait:行程會在指定的runlevel下啟動一次,且init會等待這個行程的結束。
- once:行程會在指定的runlevel下啟動一次。
- boot:行程在開機的時候被執行。
- bootwait:行程在開機的時候被執行,且init會等待這個行程的結束。
- off:不做任何事。
- ondemand:行程會在runlevel為「A」、「B」或「C」時被執行。
- initdefault:開機後預設要進入的runlevel。
- sysinit:開機時最先要被執行的行程。
- powerwait:當進入電源消失,進入UPS供電狀態時,init會執行指定的行程,並且會等待該行程的結束。
- powerfail:類似powerwait,但是這個「action」是等待行程的回傳錯誤發生的類型。
- powerokwait:當電源回復時會執行的行程。
- powerfailnow:當UPS的電力也快撐不住時會執行的行程。
- ctrlaltdel:當使用者因為按下Ctrl + Alt + Del,而使init接到「SIGINT」信號時會執行的行程。
- kbdrequest:當init接到「KeyboardSignal」(通常是按下鍵盤快速鍵來發送)時會執行的行程。這個快速鍵可以在「defkeymap.map」檔案內進行設定。至於「defkeymap.map」檔案的路徑在不同Linux發行版會不太一樣,可以查看「loadkeys」指令的手冊。Fedora 29的「defkeymap.map」檔案路徑為「/lib/kbd/keymaps/legacy/i386/qwerty/defkeymap.map.gz」(雖然這是gzip檔案,但可以直接被大部分的GNU文字編輯器來直接編輯)。若要將「KeyboardSignal」設為Alt + ↑,要在設定檔內撰寫「alt keycode 103 = KeyboardSignal」。修改完後使用「sudo loadkeys -d」指令就可以套用設定。
若要將預設的runlevel改為2的話,要寫成:
id:2:initdefault: