我已经知道这init
是启动计算机和管理运行级别所需的神奇程序,但是它的真正用途是什么?
我们为什么需要它init
?为什么引导加载程序不能告诉 Upstart 运行哪些程序,不运行哪些程序?
这个问题是(迟来的)对我的回答init
如果被删除会发生什么?问题。
答案1
这是来自的一篇文章维基百科条目init
:
在基于 Unix 的计算机操作系统中,init(初始化的缩写)是计算机系统启动期间启动的第一个进程。Init 是一个守护进程,它会持续运行直到系统关闭。它是所有其他进程的直接或间接祖先,并自动采用所有孤立进程。Init 由内核使用硬编码文件名启动,如果内核无法启动它,则会导致内核崩溃。Init 通常被分配进程标识符 1。
在 Unix 系统(例如 System III 和 System V)中,init 的设计与 Research Unix 及其 BSD 衍生产品中 init 提供的功能有所不同。大多数 Linux 发行版中的使用与 System V 在某种程度上兼容,但某些发行版(例如 Slackware)使用 BSD 风格,而其他发行版(例如 Gentoo)则有自己的定制版本。
已经编写了几种替代 init 实现,试图解决标准版本中的设计限制。这些包括 launchd、服务管理工具、systemd 和 Upstart,后者被 Ubuntu 和其他一些 Linux 发行版使用。
希望这有助于向您解释这一点;这需要大量阅读。
答案2
upstart
和systemd
是系统。按照惯例(也许还有其他限制),无论是否有或或其他东西在起作用,init
该程序仍称为。不要让进程名称欺骗你。PID1 不再是 SysV 。在 Ubuntu 上已经有一段时间不是 SysV 了。init
systemd
upstart
init