Skip to main content
Topic: Runit vs OpenRC (Read 32563 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Runit vs OpenRC

I've been tasked with putting up a server at my workplace. Since Artix is the OS of choice, I wanted to get a fresh ISO image. Then I noticed that the 'freshest' is the "artix-base-runit" image without a corresponding "artix-base-openrc" one (actually I can't remember if there was ever such one). This raised some questions:

  • I'm not familiar with runit, so is it still possible to install an openrc-based Artix from "artix-base-runit" image with these instructions?
  • Does Artix move from OpenRC to Runit?
  • What are the differences between Runit and OpenRC? What are the advantages/disadvantages of one over another? There's not much on the internets covering this subject apart from stuff that looks like dry machine-generated comparisons and this topic, which really doesn't cover the subject much, apart from suggestions that OpenRC is a legacy hack on top of old hacks and Runit is overall better.

Any experience input with Runit is welcome, especially in production environment.

Re: Runit vs OpenRC

Reply #1
Hello,

Artix base iso is netinstall, it will download needed packages from mirror.
The name "artix-base-runit" means that runit is used as init system in iso.
You can install whatever supported init you want, see wiki

So in short:
1. Yes it is
2. Artix support both runit and openrc
3. I am not qualified to answer

Re: Runit vs OpenRC

Reply #2
For comarision of init systems see: https://wiki.gentoo.org/wiki/Comparison_of_init_systems

Read the runit and openrc wiki pages-
OpenRc: https://wiki.artixlinux.org/Main/OpenRC
Runit: https://wiki.artixlinux.org/Main/Runit

I think these can give you an idea about which one will be better suited for your purposes.

Best is to try them out individually. I though prefer runit because of it’s simplicity.

Hope this helps.

Re: Runit vs OpenRC

Reply #3
The main criticisms I have heard are that Runit doesn't monitor some very early boot daemons, which may be undesirable on a server, if they stop they won't be restarted automatically (This is rarely a problem though). S6 does monitor these, but runs as PID 1 which is sometimes considered to be a security risk. OpenRC is still in a development phase and may be subject to interface changes on updates,  while Runit has barely changed for years. I'm not sure if OpenRC can monitor everything, but I've not read anything to the contrary. It doesn't run as PID 1 either, so is secure.
Probably it's best to see what works with your setup.
Changes to OpenRC are announced well in advance:
https://github.com/OpenRC/openrc/blob/master/FEATURE-REMOVAL-SCHEDULE.md

Re: Runit vs OpenRC

Reply #4
Runit service management seems to be less transparent for me
The best init system is the one you wrote yourself :)
ARMtix

Re: Runit vs OpenRC

Reply #5
Thanks for all answers so far. Given the generally good opinions about Runit and its simplicity I guess I'll go with it and see for myself how things will turn out.


Re: Runit vs OpenRC

Reply #7
Overall a good read.
Quote
The daemontools-inspired inits are simple, admin-friendly, very efficient, fast booters, easy to install without a package manager, versatile, DIY friendly, and rock solid.
This statement alone determines my choice.

Re: Runit vs OpenRC

Reply #8
I've been tasked with putting up a server at my workplace. Since Artix is the OS of choice, I wanted to get a fresh ISO image. Then I noticed that the 'freshest' is the "artix-base-runit" image without a corresponding "artix-base-openrc" one (actually I can't remember if there was ever such one). This raised some questions:

  • I'm not familiar with runit, so is it still possible to install an openrc-based Artix from "artix-base-runit" image with these instructions?
  • Does Artix move from OpenRC to Runit?
  • What are the differences between Runit and OpenRC? What are the advantages/disadvantages of one over another? There's not much on the internets covering this subject apart from stuff that looks like dry machine-generated comparisons and this topic, which really doesn't cover the subject much, apart from suggestions that OpenRC is a legacy hack on top of old hacks and Runit is overall better.

Any experience input with Runit is welcome, especially in production environment.
I shouldn't say this because I am also an Artix dev, but personally I wouldn't recommend a production system to use any kind of rolling-release distro, systemd-free or not.

However, if you are sure to use Artix, I would recommend to use a system you are familiar with (e.g. if you are familiar with OpenRC, use that).

To answer your question,
1. Yes. It is possible to install an OpenRC-based system from runit iso, vice versa.
2. Artix supports both init systems and I don't see why should we have one "primary" init when we can provide support for both systems.
3. service/initscript-wise, runit's service file is much cleaner than OpenRC (since OpenRC was intended to be compatible with sysvinit). The logging system is also different. runit doesn't need software such as logrotate since svlogd handles logging (if needed) and rotates it automatically. syslog-ng (albeit provided) is also unneeded since runit's alternative implementation of syslog, socklog (you need to install the package separately), also utilizes svlogd, making the use of logrotate package unneeded.

The main criticisms I have heard are that Runit doesn't monitor some very early boot daemons, which may be undesirable on a server, if they stop they won't be restarted automatically (This is rarely a problem though). S6 does monitor these, but runs as PID 1 which is sometimes considered to be a security risk. OpenRC is still in a development phase and may be subject to interface changes on updates,  while Runit has barely changed for years. I'm not sure if OpenRC can monitor everything, but I've not read anything to the contrary. It doesn't run as PID 1 either, so is secure.
Probably it's best to see what works with your setup.
Changes to OpenRC are announced well in advance:
https://github.com/OpenRC/openrc/blob/master/FEATURE-REMOVAL-SCHEDULE.md

1. In Artix, at least, udev is the only daemon process that is not supervised by runit. It used to be the same in Void, but now in their system, after stage 1, udevd spawned by stage 1 is exited and a new process is spawned to be supervised under runit
2. "Change" is dependent. I'm (obviously) biased since I'm the one who initially ported runit to Artix, but if a source code is stable enough not to have any bug (especially a security risk) for years, I don't really think there should be regular "updates" to add unnecessary features irrelevant to runit's core functions.

The best reference I have found in comparing init systems is an article by Steve Litt
troubleshooters.com/linux/init/features_and_benefits

edit:  oops ..... the site is temporarily (I hope) down and I am glad I had reproduced it:
https://sysdfree.wordpress.com/207

Your first link is wrong, should've been http://troubleshooters.com/linux/init/features_and_benefits.htm
now only the dinit guy in artix