为什么“init 6”是重启命令? (历史原因)

为什么“init 6”是重启命令? (历史原因)

我想知道为什么 6 是与“init 6”中的重新启动命令相关的数字/代码/信号。我的意思是历史/故事/传说原因,而不是以技术方式...如果它是“列表相关原因”或者可能是关于递归/circle-ouroboros/101 类似数字的图形事物。

我开始读书了UNIX操作系统的设计莫里斯·巴赫(Maurice Bach),但尚未找到原因或想法。

答案1

init 6是(或,a)重新引导命令,因为“运行级别”的历史定义或主机预期所处的一般系统状态。这些通常定义为:

  • 0 - 关闭/系统停止
  • 1 - 单用户模式
  • 2 - 保留供管理使用
  • 3 - 具有网络和服务的多用户模式
  • 4 - 保留供管理使用
  • 5 - 具有网络、服务和 GUI 登录守护程序的多用户模式
  • 6 - 重新启动

init命令告诉系统移动到指定的运行级别。因为6是用于重新启动主机的常用定义运行级别,并且init 6(或telinit 6)是对于该运行级别,这就是为什么init 6通常被理解为reboot命令的原因。

从技术上讲,由于狡猾或无聊的系统管理员可以重新定义这些命令,因此建议将其用作shutdown -r重新引导命令。部分原因是某些发行版(例如 Gentoo)完全回避了这一约定,并且由于 System V Init 系统的不断弃用而转而支持新贵和其他“PID 1”守护进程。

答案2

System V 风格的 init 首次出现是在 80 年代初的 SVR3 中,在此之前 AT&T Unix 没有采取任何争论。

开箱即用,没有init 0也没有init 6配置;仅init 1适用于单用户模式和init 2多用户模式。

系统管理员可以自由地使用任何他们想要的额外运行级别。

使用 SVR4,运行级别标准化为以下值:

  • s:单用户
  • 0:停止/断电
  • 1:单用户模式(!=单用户,更多的是恢复/管理模式)
  • 2:多用户(机器是客户端)
  • 3:多用户;分布式模式(机器是服务器)
  • 4:未分配
  • 5:诊断
  • 6:重启

我最好的猜测是选择 6,因为没有设想需要额外的未分配运行级别。

所有这些都发生在 Gnu/Linux 发布之前,因此与 Linux 相关的任何内容都是无关紧要的。

相关内容