I have Devuan Ascii with SysVinit installed. I see that the openRC version is much older in Devuan ascii repository. Has anyone tried Devuan with openRC? Is the parallel starts enabled for openRC?
-
Have a look at Antix– Rui F RibeiroCommented Oct 2, 2018 at 10:01
-
Yeah. I should try. But, does antiX has packaged openRC and other packages to work without systemd.– Confguy2016Commented Oct 2, 2018 at 16:13
-
1Antix has made a much better job of avoiding systemd than Devuan. As for openRC no idea. Flooded on work today, wont be able to check that out for you.– Rui F RibeiroCommented Oct 2, 2018 at 16:16
-
Thanks for the heads up. I will try to boot an antiX iso (default is runit init, I guess) to see.– Confguy2016Commented Oct 2, 2018 at 16:31
-
Antix has openrc, just checked, no systemd.– Rui F RibeiroCommented Oct 2, 2018 at 18:20
1 Answer
tl;dr
Yes, it can be, but it is slower and less efficient than the default sysvinit setup.
The Default (sysvinit)
A default Devuan Ascii installation already does parallel bootup with insserv and startpar. These work by parsing LSB headers in initscripts (take a look inside /etc/init.d) that explicitly specify dependencies. When you run sudo insserv, insserv processes these init scripts into files such as /etc/init.d/.depend.boot, /etc/init.d/.depend.start, etc. On bootup, startpar reads these scripts and starts processes in parallel according to these rules.
For example, here is my bootchart with sysvinit (booting to a console):

OpenRC (unoptimized)
Installing OpenRC is done like any other package:
$ apt update
$ apt install openrc
After installation, it will tell you:
**********************************************************************
*** 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 that as superuser.
In the process of installation, apt will remove insserv and startpar.
However, at least in my experience, OpenRC is slower than augmented sysvinit due to the fact that OpenRC calculates dependencies at boot time, as opposed to insserv which does so at package-install time.
For example, here is my bootchart with OpenRC, which is 1.57 seconds slower:

OpenRC (optimized)
If we want to go further, we can add the line rc_parallel="YES" to /etc/rc.conf. However, this mangles the startup output for a minimal gain in startup time, which is still slower than insserv+startpar:

This is because OpenRC is still using the LSB init scripts written in shell, as opposed to setups more optimized for it using openrc-run. Even with an updated version of OpenRC with openrc-init used instead of sysvinit, the bootup times are still worse.