更改运行级别时,SysV 和类 SysV 系统有什么区别?

更改运行级别时,SysV 和类 SysV 系统有什么区别?

我计划参加 LPI 考试,需要了解 SysV 的工作原理。据我所知,一个真正的 SysV 系统描述如下:

http://www.softpanorama.org/Commercial_linuxes/Startup_and_shutdown/runlevels.shtml

类似 Debian SysV 的系统描述如下:

https://www.debian.org/doc/debian-policy/ch-opersys.html#s-sysvinit

根据链接,两者之间的一大区别似乎是切换运行级别时:

系统V: 运行先前运行级别的所有终止脚本,然后运行新运行级别的所有启动脚本

类似 SysV (Debian): 从新的运行级别运行所有终止脚本,然后从新的运行级别运行所有启动脚本

这是准确的,还是我误解了什么?当LPI网站提到SysV正在考试时,他们会谈论真正的SysV,还是常用的实现——Debian的类似SysV的系统?

答案1

我最近有机会来看看 pecom 系统上的 init 系统是如何实现的,这很有趣。脚本 /etc/init.d/rc 带有 Debian 版权声明,与当前 Debian 版本类似但不完全相同。 rc 脚本从 S 和 K 符号链接运行适当运行级别的脚本,但进行了优化,不运行在同一运行级别中具有匹配 S 脚本的 K 脚本。在典型的 Debian 系统上,这不是问题,因为链接创建脚本永远不会为同一个脚本同时创建 K 和 S 链接,但在 pecom 系统上(绝对不是 Debian 系统,使用 rpm),对于所有内容都有一个 K 脚本每个 rcX.d 目录中都有新运行级别所需项目的 S 链接,因此如果 Debian 优化没有到位,每个运行级别更改都将只是一个内核,并且需要重新启动。无论 K 脚本从哪个目录运行,这样的一组链接都会导致相同的行为。

相关内容