linux运行级别定义在什么文件中

55次阅读
没有评论

共计 5245 个字符,预计需要花费 14 分钟才能阅读完成。

这篇“linux 运行级别定义在什么文件中”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux 运行级别定义在什么文件中”文章吧。

linux 运行级别定义在“/etc/inittab”配置文件中。“/etc/inittab”是 linux 初始化文件系统时,init 初始化程序用到的配置文件;该配置文件只能用来设置系统的默认运行级别,也就是系统开机后会进入那个运行级别。

本教程操作环境:linux5.9.8 系统、Dell G3 电脑。

什么是运行级别呢?

其实 Linux 是通过运行级别来确定系统启动时到底启动哪些服务的。

Linux 默认有 7 个运行级别,具体如表 1 所示。

     
表 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 运行级别定义在什么文件中”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计5245字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)