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

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

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

答案1

太长了;博士

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

默认值 (sysvinit)

默认的 Devuan Ascii 安装已经可以并行启动服务起始参数。这些工作是通过解析显式指定依赖项的 initscripts(查看内部/etc/init.d)中的 LSB 标头来实现的。当您运行时sudo insservinsserv将这些初始化脚本处理成诸如/etc/init.d/.depend.boot/etc/init.d/.depend.start等文件。在启动时,startpar读取这些脚本并根据这些规则并行启动进程。

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

OpenRC(未优化)

安装 OpenRC 的方式与安装其他软件包一样:

$ apt update
$ apt install openrc

安装完成后,它会告诉你:

**********************************************************************
*** 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
**********************************************************************

以超级用户身份运行它。

安装过程中,apt会删除insservstartpar

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

例如,这是我使用 OpenRC 的 bootchart,它慢了 1.57 秒: openrc unoptimized bootchart

OpenRC(优化)

如果我们想更进一步,我们可以将该行添加rc_parallel="YES"/etc/rc.conf.然而,这会破坏启动输出,以最小化启动时间,这仍然比insserv+慢startparopenrc optimized bootchart

这是因为 OpenRC 仍然使用在 shell 中编写的 LSB 初始化脚本,而不是使用 openrc-run 对其进行更优化的设置。即使使用 OpenRC 的更新版本(使用 openrc-init 代替 sysvinit),启动时间仍然更差。

相关内容