4

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 Ribeiro Oct 2 '18 at 10:01
  • Yeah. I should try. But, does antiX has packaged openRC and other packages to work without systemd. – Confguy2016 Oct 2 '18 at 16:13
  • 1
    Antix 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 Ribeiro Oct 2 '18 at 16:16
  • Thanks for the heads up. I will try to boot an antiX iso (default is runit init, I guess) to see. – Confguy2016 Oct 2 '18 at 16:31
  • Antix has openrc, just checked, no systemd. – Rui F Ribeiro Oct 2 '18 at 18:20
5

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): sysv bootchart

OpenRC (unoptimized)

Installing OpenRC is done like any other package:

$ apt update
$ apt get 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 unoptimized bootchart

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: openrc optimized bootchart

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.