Ubuntu 19.10 的启动过程

Ubuntu 19.10 的启动过程

我试图弄清楚系统在启动过程中做了什么。

以下是我取得的进展:

  1. GRUB(引导加载程序)→ 内核→ systemd(初始化进程)
  2. systemd检查默认的启动级别/目标(在哪里?
  3. systemd从适当的文件夹中运行脚本/etc/rcX.d

    • /etc/rcX.d是对文件的一种排序/etc/init.d
    • 中的应用程序/etc/init.d,需要配置,将其放入/etc/init(?)
    • 啥时候/etc/rcS.d用?
  4. /etc/rc.local开始(尽管 Debian FAQ 建议不要使用它)

  5. [这里还有什么?]

问题:有人可以填写空白并更正错误信息吗?

答案1

我尝试通过 #ubuntu-offtopic @ freenode 中给出的答案来填补空白

  1. GRUB(引导加载程序)→ 内核→ systemd(初始化进程)
  2. systemd检查默认值target(大致是 的一个新术语runlevel,但更细粒度)
    • 位置:systemd 管理文件中的某个位置
    • systemctl get-default显示你的默认目标
  3. systemd开始运行服务。这基本上与在/etc/rc*.d

    • 初始化脚本位于/etc/systemd/system*.target.wants
    • 如果服务应该启动,但没有*.service文件,systemd 将检查当前目标对应的运行级别,并从 运行相应的初始化脚本etc/rc*.d。更多信息可参见man systemd.service
    • @ /etc/rcS.d:这似乎是一个运行级别,就像数字一样。'S'可能代表“单用户模式”——就像救援控制台一样……
    • 我真的建议你读一下man systemd.service(5)。它包含很多有用的信息,甚至还有更多指向各种主题的有用提示。
  4. /etc/rc.local开始(尽管 Debian FAQ 建议不要使用它)

  5. GUI,就像登录屏幕一样,只是/etc/systemd/system从步骤 3启动的另一个服务

其他信息:

  • /etc/rc*.d并且/etc/init.d是 SysV 所采用的传统初始化方式。如前所述,它仍然受支持。不过,它可能如果一切都迁移到 systemd(无论好坏),那么有一天它将不再受支持。
  • 中的文件/etc/init由 使用upstart,据我所知,它在 Ubuntu 中不使用(因为 systemd 完成了它的工作)

相关话题:

相关内容