Debian / Ubuntu上的Runlevel'S'是什么


8

根据维基百科,“ S”应该是标准运行级别:“单用户模式”。但是,如果我没有记错的话,那么Debian上的单用户模式就是运行级别1。我发现一篇Debian文章声称,“ S”是一个运行级别,“系统将其用于通往另一个运行级别的方式”。有趣...

实际上,到目前为止,我几乎一直都忽略了这个运行级别,但是今天我只是因为好奇,才开始尝试使用Firestarter(是的,实际上是一个最终用户防火墙)。但是后来我注意到,它在/etc/rcS.d中创建了一个启动钩,我想知道我的防火墙脚本是否也应该具有该钩子?

更新资料

现在,我对了解Debian / Ubuntu上的实际情况更加感兴趣,因为Shorewall软件包(这是一个强烈的“ Debianized”软件包)还在rcS.d中创建了它的(唯一!)启动钩子!

Answers:


3

我以这种方式查看运行级别:

 S - true single user mode usually drops you into a minimal root shell
 1 - Administrative mode, you get a standard login request before access
 2 - Multi-user without TCP/IP networking -- could use serial ports for other logins
 3 - Multi-user with TCP/IP networking and text 
 4 - To be determined by the system owner
 5 - Multi-User with TCP/IP networking and graphic console 
 6 - reboot
 0 - shutdown and power down

因此,如果TCP / IP已启动并正在运行,则确实需要防火墙,并且防火墙通常仅在初始化状态3中发生。


1
整个运行级别概念是过去的遗留事物。如今,通常使用单用户模式(用于维护),并使用其他一些普通模式(例如2或5,具体取决于发行版)。我真的没有看到其他任何用例。
cstamas 2011年

实际上,更糟糕的是,最新的发行版消除了所有运行级别(目前作为遗留事务得到支持),并转移到其下具有依赖关系的命名州(请参阅Fedora 15)。
mdpc

3

以上所有这些似乎可以直接回答所提出的问题。

据我所知,rcS.d脚本是按照S启动 ”而不是“ 单一 ”的标准来实现的。

它们都在引导过程中运行。如果您随后要使用运行级别1,rc1.d则运行其中的脚本(鉴于我们刚才所做的所有工作,它可能很空rcS

更重要的是,这些rcS脚本是按以下方式运行的rc3:如此有效地将系统置于单用户模式,然后重新考虑并决定它真正应该做的事情。非常令人困惑,而且记录不充分。

作为证明,如果您检查/etc/inittab,则会发现:

 # Boot-time system configuration/initialization script.<br>
 # This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

随后出现许多类似以下内容的行:

l3:3:wait:/etc/init.d/rc 3

1

运行级别1也称为runlevel。

在基于Debian的系统中,这是单用户 / 最小模式。参见Debian Runlevel

运行级别是从0到6的数字或字母S。运行级别0、6和S分别保留用于关机,重新引导和单用户模式。


0

S用于单用户模式。

http://wiki.debian.org/RunLevel


因此,如果脚本仅在运行级别S中具有启动钩子(例如Shorewall),并且我启动到运行级别'2',那么启动顺序将启动脚本吗?
克里斯·勒彻

在Linux中,如果您的默认状态(如/ etc / inittab中所述)为N,则与UNIX不同,仅/etc/rc.d/rcN.d中的“ S”项(此位置可能因Linux发行版而异)将在启动过程中执行,将不使用其他初始化目录。
mdpc

通常,您可以在inittab中设置默认运行级别。数字递增。因此,以您的示例为例,如果仅在S中配置了与运行级别1相同的init。在启动时,系统将在运行级别1处启动,并增加该级别的所有初始化脚本的运行,然后递增运行级别并重复执行直到进入inittab中指定的默认运行级别。这是两个。因此,无论配置为打开1还是2都将打开。
dmourati 2011年

1
请注意,我的问题仅针对Debian / Ubuntu!我只是尝试以下操作:我在/etc/rcS.d和中放了一个简单的脚本/etc/rc2.d,每个脚本都向日志文件中写入一条短消息(带有时间戳)。结果:引导后,我有一条有关rcS的日志消息,5秒钟后,有一条有关rc2的日志消息。
克里斯·勒彻

要更改系统将引导到的默认运行级别,请修改文件/etc/init/rc-sysinit.conf中的变量DEFAULT_RUNLEVEL。例如,要使系统默认启动为单用户模式,请设置:env DEFAULT_RUNLEVEL = 1
dmourati 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.