Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >In welcher Datei sind Linux-Runlevels definiert?
Linux-Runlevel ist in der Konfigurationsdatei „/etc/inittab“ definiert. „/etc/inittab“ ist die Konfigurationsdatei, die vom Init-Initialisierungsprogramm verwendet wird, wenn Linux das Dateisystem initialisiert. Diese Konfigurationsdatei kann nur zum Festlegen der Standardausführungsebene des Systems verwendet werden. Dies ist die Ausführungsebene, nach der das System eintritt Booten.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
Was ist ein Runlevel?
Tatsächlich verwendet Linux Runlevel, um zu bestimmen, welche Dienste beim Systemstart gestartet werden.
Linux verfügt standardmäßig über 7 Ausführungsebenen, wie in Tabelle 1 gezeigt.
Run-Level | Bedeutung |
---|---|
0 | Herunterfahren |
1 | Der Einzelbenutzermodus, den man sich als den abgesicherten Modus von Windows vorstellen kann, wird hauptsächlich zur Systemreparatur verwendet |
2 | Unvollständiger Befehlszeilenmodus, enthält keinen NFS-Dienst |
3 | Vollständiger Befehlszeilenmodus, der die Standard-Zeichenschnittstelle ist |
4 | System reserviert |
5 | Grafikmodus |
6 | Neustart |
In welcher Datei ist der Linux-Runlevel definiert?
Der Linux-Runlevel ist in der Konfigurationsdatei „/etc/inittab“ definiert.
/etc/inittab
Die Konfigurationsdatei kann nur zum Festlegen der Standardausführungsebene des Systems verwendet werden, d. h., in welche Ausführungsebene das System nach dem Hochfahren wechselt. Die Datei /etc/inittab beschreibt, welche Prozesse normal starten und ausgeführt werden. inittab ist die Konfigurationsdatei, die vom Init-Initialisierungsprogramm verwendet wird, wenn Linux das Dateisystem initialisiert. Diese Datei ist dafür verantwortlich, festzulegen, wo sich das Initialisierungsskript für die einzelnen Ausführungsebenen befindet; die Befehle, die dem Booten, Herunterfahren und Neustarten entsprechen; .
Das Format der Einträge in der inittab-Datei ist wie folgt:
label:runlevels:action:process
Jedes Feld wird unten vorgestellt
1.labellabel ist eine eindeutige Sequenz, die einen Eintrag mit 1-4 Zeichen bestimmt Systeme unterstützen nur 2-stellige Bezeichnungen. Für andere Anmeldeprogrammelemente wie getty oder mingetty müssen die Bezeichnungs- und TTY-Nummern identisch sein, andernfalls funktioniert das getty-Programm nicht ordnungsgemäß.
Häufig verwendete Tags sind:
id 用来定义缺省的init运行的级别 si 是系统初始化的进程 ln 其中的n从1~6,指明该进程可以使用的runlevel的级别 ud 是升级进程 ca 指明当按下Ctrl+Alt+Del时运行的进程 pf 指当UPS表明断电时运行的进程 pr 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程 x 是将系统转入X终端时需要运行的进程
2.runlevelsrunlevels listet die Runlevel auf und gibt die Aktionen an, die durchgeführt werden sollen. Es können mehrere Runlevel-Ebenen angegeben werden, oder es kann kein spezifischer Wert für das Runlevel-Feld angegeben werden.
runlevel 0是让init关闭所有进程并终止系统。 runlevel 1是用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登录用户的情况下不能进行更改的文件,改runlevel的编号1也可以用S代替。 runlevel 2是允许系统进入多用户的模式,但并不支持文件共享,这种模式很少应用。 runlevel 3是最常用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。 runlevel 4一般不被系统使用,用户可以设计自己的系统状态并将其应用到runlevel 4阶段,尽管很少使用,但使用该系统可以实现一些特定的登录请求。 runlevel 5是将系统初始化为专用的X Window终端。对功能强大的Linux系统来说,这并不是好的选择,但用户如果需要这样,也可以通过在runlevel启动来实现该方案。 runlevel 6是关闭所有运行的进程并重新启动系统。
Debian 6 und höher werden standardmäßig nicht ausgeführt. Die Standardstufe der Datei /etc/inittab ist 2-5 und wird in eine Kategorie klassifiziert in dem der Prozess ablaufen soll und beschreibt, wie der nachfolgende Prozess abläuft. :
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.processDas Prozessfeld enthält den von init ausgeführten Prozess. Das Format des Prozesses ist das gleiche wie beim Ausführen des Prozesses unter der Befehlszeile, daher beginnt das Prozessfeld mit dem Namen des Prozesses, gefolgt von Gefolgt von den Parametern, die zur Laufzeit an den Prozess übergeben werden sollen.
Der Code lautet wie folgt:
# /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
Der Code lautet wie folgt: # The default runlevel.
id:2:initdefault: #表示当前缺省运行级别为2
Der Code lautet wie folgt: # Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS #系统初始化的进程
Der Code lautet wie folgt:
# What to do in single-user mode. ~~:S:wait:/sbin/sulogin
Der Code lautet wie folgt:
# /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.
Der Code lautet wie folgt:
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
Der Code lautet wie folgt:
# What to do when CTRL-ALT-DEL is pressed. #在启动过程中是否允许按CTRL-ALT-DELETE重启系统 #ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Der Code lautet wie folgt:
# Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
Der Code lautet wie folgt:
# 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
Der Code lautet wie folgt:
# /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # 53384f78b45ee9f1e3082cf378b9c5b4:aa8e9a9ffd796aa413e03363b25da911:26e39fa7e1b26005f564b20d47361531:22cd36f119203ea5e8c594b34aeec209 # # 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
Der Code lautet wie folgt:
#标签字段的值是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
Beispiel
# 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
Verwandte Empfehlungen: „
Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonIn welcher Datei sind Linux-Runlevels definiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!