linux運行等級定義在「/etc/inittab」設定檔中。 「/etc/inittab」是linux初始化檔案系統時,init初始化程式用到的設定檔;該設定檔只能用來設定係統的預設運作級別,也就是係統開機後會進入那個運作級別。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
什麼是運行等級呢?
其實 Linux 是透過運行等級來決定係統啟動時到底啟動哪些服務的。
Linux 預設有 7 個運行級別,如表 1 所示。
運轉等級 | 含 義 |
---|---|
0 | 關機 |
1 | 單一使用者模式,可想像為 Windows 的安全模式,主要用於系統修復 |
2 | 不完整的命令列模式,不含 NFS 服務 |
3 | 完整的命令列模式,就是標準字元介面 |
4 | 系統保留 |
5 | 圖形模式 |
6 | 重新啟動 |
linux運行等級定義在哪個檔案中
linux運行層級定義在「/etc/inittab」設定文件中。
/etc/inittab
設定檔只能用來設定係統的預設運作級別,也就是係統開機後會進入那個運作級別
/etc/inittab文件描述了哪些進程開始啟動並正常運作。 inittab為linux初始化檔案系統時init初始化程式用到的設定檔。這個檔案負責設定init初始化程序初始化腳本在哪裡;每個運行級初始化時運行的命令;開機、關機、重啟對應的命令;各運行級登陸時所運行的命令。
inittab檔案中的條目的格式如下:
label:runlevels:action:process
下面分別介紹各個欄位
1.label
label 是一個獨特的序列,確定了一個條目1 - 4字元,一些系統只支援2個字元的標籤。對於getty或mingetty等其他login程式項,要求label與tty的編號相同,否則getty程式將無法正常運作。
常用標籤有:
id 用来定义缺省的init运行的级别 si 是系统初始化的进程 ln 其中的n从1~6,指明该进程可以使用的runlevel的级别 ud 是升级进程 ca 指明当按下Ctrl+Alt+Del时运行的进程 pf 指当UPS表明断电时运行的进程 pr 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程 x 是将系统转入X终端时需要运行的进程
2.runlevels
runlevels 列出了運行級,指定應該採取的動作。可以指定多個runlevel級別,也可以不為runlevel欄位指定特定的值。
runlevel 0是让init关闭所有进程并终止系统。 runlevel 1是用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登录用户的情况下不能进行更改的文件,改runlevel的编号1也可以用S代替。 runlevel 2是允许系统进入多用户的模式,但并不支持文件共享,这种模式很少应用。 runlevel 3是最常用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。 runlevel 4一般不被系统使用,用户可以设计自己的系统状态并将其应用到runlevel 4阶段,尽管很少使用,但使用该系统可以实现一些特定的登录请求。 runlevel 5是将系统初始化为专用的X Window终端。对功能强大的Linux系统来说,这并不是好的选择,但用户如果需要这样,也可以通过在runlevel启动来实现该方案。 runlevel 6是关闭所有运行的进程并重新启动系统。
debian6以後預設沒有運行/etc/inittab 檔案預設等級為2-5歸為一類
3.action
#action 欄位定義了該進程應該運行在何種狀態下,描述其後的process的運行方式的。 :
respawn 不管何时终止都重新启动进程 wait 运行进程等待输入运行模式 这个过程将会开始一次运行级别时指定输入和init将等待其终止 once 每一个runlevel级别运行一次 这个过程将执行一次当指定输入runlevel boot 在系统启动时运行,忽略runlevel bootwait 在系统启动时运行,init等待进程完成。忽略runlevel ctrlaltdel 当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略 runlevel initdefault 不要执行这个进程,它用于设置默认runlevel kbrequest 当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigra off 禁止进入,因此该进程不运行 once 每一个runlevel级别运行一次 ondemand 当系统指定特定的运行级别A、B、C时运行 powerfail 当init收到SIGPWR信号时运行 powerokwait 当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行 powerwait 当收到SIGPWD信号,并且init等待进程结束时运行 sysinit 在运行boot或bootwait进程之前运行
4.process
#process欄位包含init執行的進程,該進程所採用的格式與在命令列下執行該進程的格式一樣,因此process欄位都以該進程的名字開頭,緊跟著是運行時要傳遞給該進程的參數。
程式碼如下:
# /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
程式碼如下:
# The default runlevel. id:2:initdefault: #表示当前缺省运行级别为2
程式碼如下:
# Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS #系统初始化的进程
程式碼如下:
# What to do in single-user mode. ~~:S:wait:/sbin/sulogin
程式碼如下:
# /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot.
程式碼如下:
l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin
程式碼如下:
# What to do when CTRL-ALT-DEL is pressed. #在启动过程中是否允许按CTRL-ALT-DELETE重启系统 #ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
程式碼如下:
# Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
程式碼如下:
# What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop
程式碼如下:
# /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # <id>:<runlevels>:<action>:<process> # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # getty进程来提供虚拟终端设备的服务 1:2345:respawn:/sbin/getty 38400 tty1
程式碼如下:
#标签字段的值是1,1是设备tty1的数字后缀,tty1与相应的进程相关联,该getty进程可以启动的runlevel是2,3,4和5,当该进程终止时,init马上就重新启动它。启动进程的路径名是/sbin/getty,该进程是实现虚拟终端支持的最小版本的getty,为tty1提供启动虚拟设备的进程。 2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 T1:23:respawn:/sbin/getty -L ttyS1 115200 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
範例
## Begin /etc/inittab id:3:initdefault: si::sysinit:/etc/rc.d/init.d/rc sysinit l0:0:wait:/etc/rc.d/init.d/rc 0 l1:S1:wait:/etc/rc.d/init.d/rc 1 l2:2:wait:/etc/rc.d/init.d/rc 2 l3:3:wait:/etc/rc.d/init.d/rc 3 l4:4:wait:/etc/rc.d/init.d/rc 4 l5:5:wait:/etc/rc.d/init.d/rc 5 l6:6:wait:/etc/rc.d/init.d/rc 6 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now su:S016:once:/sbin/sulogin 1:2345:respawn:/sbin/agetty tty1 9600 2:2345:respawn:/sbin/agetty tty2 9600 3:2345:respawn:/sbin/agetty tty3 9600 4:2345:respawn:/sbin/agetty tty4 9600 5:2345:respawn:/sbin/agetty tty5 9600 6:2345:respawn:/sbin/agetty tty6 9600 # End /etc/inittab
相關推薦:《Linux影片教學》
以上是linux運行等級定義在哪個檔案中的詳細內容。更多資訊請關注PHP中文網其他相關文章!