进一步阅读

进一步阅读

最近遇到一个问题:输入时init 1出现错误:init: must be run as PID 1。我进入ps,结果发现/sbin/init1。我现在可以怎样使用init

答案1

你不能使用init.这是不适合这项工作的程序。

您需要忘记init可以作为普通命令调用的想法。init存在这种情况的程序不是您init拥有的程序。有 4 个init程序可以将其作为普通命令调用,但您没有使用其中任何一个。相反,您使用的是 BusyBox init,如果它检测到它已作为系统上除进程 #1 以外的任何内容被调用,则会打印该消息并退出。除了作为进程 #1 之外,它没有其他功能。

telinitBusyBox 中也没有。它init没有基于 FIFO 的客户端/服务器接口。

要关闭,您必须执行一些操作,最终导致SIGPWRSIGUSR1SIGUSR2SIGTERM被发送到进程 #1。请注意,与其他系统管理工具集一样,“单用户模式”(自 1995 年以来的用词不当)并不是关闭目标。人们不会关闭到这种模式,并且 BusyBoxinit实际上并不参与制定这种模式。

相反,在 BusyBox 之上使用 OpenRC 的系统中init,这种模式完全属于 OpenRC 机制的范畴。 openrc single更改为错误命名的“单一”模式。 (使用 OpenRC自己的 init,这对你来说不是这样,有一个shutdown命令可以与之对话。但那只是相当迂回的方式openrc single事实证明,跑步。)

Alpine Linux 正在记录请注意,过时的 OpenRC。 OpenRC 本身不再有single目录。 该内容于 2019 年被删除。此外,该命令于2014年rc更改为openrc

进一步阅读

相关内容