>  기사  >  운영 및 유지보수  >  Linux 런레벨은 어떤 파일에 정의되어 있습니까?

Linux 런레벨은 어떤 파일에 정의되어 있습니까?

青灯夜游
青灯夜游원래의
2022-05-12 18:19:473503검색

Linux 실행 수준은 "/etc/inittab" 구성 파일에 정의되어 있습니다. "/etc/inittab"은 Linux가 파일 시스템을 초기화할 때 init 초기화 프로그램에서 사용하는 구성 파일입니다. 이 구성 파일은 시스템의 기본 실행 수준을 설정하는 데만 사용할 수 있습니다. 이는 시스템이 이후에 입력할 실행 수준입니다. 부팅.

Linux 런레벨은 어떤 파일에 정의되어 있습니까?

이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.

실행 레벨이란 무엇인가요?

실제로 Linux는 실행 수준을 사용하여 시스템이 시작될 때 시작되는 서비스를 결정합니다.

Linux에는 표 1에 표시된 대로 기본적으로 7개의 실행 수준이 있습니다.

표 1 실행 수준
                실행 수준               의미
                0             종료
              1             Windows의 안전 모드를 연상시키는 단일 사용자 모드는 주로 시스템 복구에 사용됩니다
​​​​​​ 2             불완전한 명령줄 모드, NFS 서비스를 포함하지 않음
​​​​​​ 3             표준 문자 인터페이스인 완전한 명령줄 모드
​​​​​​ 4             시스템 예약됨
                5             그래픽 모드
              6               재시작

리눅스 런레벨은 어느 파일에 정의되어 있나요?

리눅스 런레벨은 "/etc/inittab" 구성 파일에 정의되어 있습니다.

/etc/inittab 구성 파일은 시스템의 기본 실행 수준, 즉 시스템이 부팅 후 진입할 실행 수준을 설정하는 데에만 사용할 수 있습니다. /etc/inittab 파일은 어떤 프로세스가 정상적으로 시작되고 실행되는지 설명합니다. inittab은 Linux가 파일 시스템을 초기화할 때 init 초기화 프로그램에서 사용하는 구성 파일입니다. 이 파일은 초기화 프로그램 초기화 스크립트의 위치를 ​​설정합니다. 각 실행 수준이 초기화될 때 실행될 명령과 각 실행 수준이 로그될 때 실행될 명령입니다. 안에.

inittab 파일의 항목 형식은 다음과 같습니다.

label:runlevels:action:process

다음 필드는 별도로 소개됩니다.

1.labellabel은 1~4자로 항목을 결정하는 고유한 시퀀스입니다. 일부 시스템에서는 2자 라벨만 지원합니다. getty 또는 mingetty와 같은 다른 로그인 프로그램 항목의 경우 레이블과 tty 번호가 동일해야 합니다. 그렇지 않으면 getty 프로그램이 제대로 작동하지 않습니다.

일반적으로 사용되는 태그는 다음과 같습니다.

id 用来定义缺省的init运行的级别
si 是系统初始化的进程
ln 其中的n从1~6,指明该进程可以使用的runlevel的级别
ud 是升级进程
ca 指明当按下Ctrl+Alt+Del时运行的进程
pf 指当UPS表明断电时运行的进程
pr 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程
x 是将系统转入X终端时需要运行的进程

2.runlevelsrunlevels는 실행 수준을 나열하고 수행해야 하는 작업을 지정합니다. 여러 런레벨 레벨을 지정하거나 런레벨 필드에 특정 값을 지정할 수 없습니다.

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 이상은 기본적으로 실행되지 않습니다. /etc/inittab 파일의 기본 수준은 2~5이며 후속 프로세스가 실행되는 방식으로 하나의 범주로 분류됩니다. :

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프로세스 필드에는 init에 의해 실행되는 프로세스가 포함됩니다. 프로세스 형식은 명령줄에서 프로세스를 실행하는 것과 동일하므로 프로세스 필드는 이름으로 시작됩니다. 프로세스의 이름 뒤에는 런타임 시 프로세스에 전달될 매개변수가 옵니다.

코드는 다음과 같습니다.

# /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:
# 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

코드는 다음과 같습니다.

#标签字段的值是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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.