是否可以使用 OpenRC init 运行 Devuan Ascii?

Con*_*016 5 sysvinit openrc devuan

我有安装了 SysVinit 的 Devuan Ascii。我发现 Devuan ascii 存储库中的 openRC 版本要旧得多。有人用 openRC 试过 Devuan 吗?是否为 openRC 启用了并行启动?

nov*_*ice 6

tl;博士

是的,它可以,但它比默认的 sysvinit setup 更慢且效率更低

默认 (sysvinit)

默认的 Devuan Ascii 安装已经使用insservstartpar 进行并行启动。这些通过解析/etc/init.d显式指定依赖项的initscripts(看看里面)中的LSB 标头来工作。当您运行sudo insservinsserv处理这些init脚本到文件,如/etc/init.d/.depend.boot/etc/init.d/.depend.start等在启动时,startpar读取这些脚本,并根据这些规则并行启动过程。

例如,这是我的 sysvinit 引导图(引导到控制台): sysv 引导图

OpenRC(未优化)

安装 OpenRC 就像安装任何其他软件包一样:

$ apt update
$ apt install openrc
Run Code Online (Sandbox Code Playgroud)

安装后,它会告诉你:

**********************************************************************
*** WARNING: if you are replacing sysv-rc by OpenRC, then you must ***
*** reboot immediately using the following command:                ***
for file in /etc/rc0.d/K*; do s=`basename $(readlink "$file")` ; /etc/init.d/$s stop; done
**********************************************************************
Run Code Online (Sandbox Code Playgroud)

以超级用户身份运行它。

在安装过程中,apt将删除insservstartpar

但是,至少根据我的经验,OpenRC 比增强的 sysvinit 慢,因为 OpenRC 在启动时计算依赖项,而不是insserv在包安装时计算。

例如,这是我使用 OpenRC 的引导图,它慢了 1.57 秒: openrc 未优化的引导图

OpenRC(优化)

如果我们想更进一步,我们可以将行添加rc_parallel="YES"/etc/rc.conf. 然而,这会破坏启动输出以获得最小的启动时间增益,这仍然比insserv+慢startparopenrc 优化的引导图

这是因为 OpenRC 仍然使用在 shell 中编写的 LSB init 脚本,而不是使用 openrc-run 为其优化的设置。即使使用 openrc-init 而不是 sysvinit 的 OpenRC 更新版本,启动时间仍然更糟。