Sysvinit replacement

I 'd like to hear some input on sysvinit replacement.
I think, at some point, sysvinit will be replaced by an alternative.
The question is, what alternative, and connected to that, should service supervision be enabled?

We got starting with opentrc-0.25, builtin

  1. openrc-init

     man openrc-init
    
     NAME
          openrc-init — the parent of all processes
    
     SYNOPSIS
          openrc-init
    
     DESCRIPTION
          openrc-init is an init process which can be an alternative to sysvinit or any other init process.
    
      To use openrc-init configure your boot loader to invoke it or symlink it to /sbin/init.  Also, you will need
      to use openrc-shutdown(8), to halt, reboot or poweroff the system.
    
      The default runlevel is read from the init command line, the rc_default_runlevel setting in rc.conf, the
      kernel command line, or it is assumed to be "default" if it is not set in any of these places.
    
      openrc-init doesn't manage getty's directly, so you will need to manage them another way. For example, you
      can use the agetty service script as described in agetty-guide.md in this distribution.
    
  2. runit

  3. s6(not even in repos)

runit and s6 are both nice, but, I would opt for openrc builtin supervision and openrc-init, for the sake of better configuration.
It may not be everyone’s taste to setup s6 with openrc.

What’s you opinion? What direction?

I agree with you about using openrc builtin supervision and openrc-init would seem to be a better fit. If you were to switch to either of the other two how well would they intergrate into openrc?

1 Like

openrc doesn’t care what supervision.
It has a builtin one, but supports runit and s6 as well.

That said, openrc supervision is optional with openrc-init, whereas runit and s6 are supervisors.

Ok thanks. That is good to know.

i tried to check on the web the good and the bad of each but not easy …

I’m actually runing manjajo with S6 and have tried with runit also.
From what I experience, having a supervision system on a desktop/laptop over an init system is a bit overkill.

I use S6 as an init replacement aswell as runit before and not on top of something else.
Runit is very similar to openrc in pratice and you will end up managing the same sevices almors the same way in both of them.
S6 is a bit more complex to use (to set up) and is really fast as init replacement, but again overkill for me to have it on top of something else on a PC.
If openrc has something build in, I would use that for openrc systems.

2 Likes

I know next to nothing about the technical merits of the various solutions, and so can’t contribute much in that regard.

I can say that I continue to study the available options carefully, and that I observe that there are a lot of scattered groups (most of them quite small) that are looking for a solution to the same problem, and responding to new potential problems as they emerge (like artoo is doing in this post).

The largest and most qualified group lives over the hill at Gentoo/Funtoo.

In large part we have them to thank for a lot of the big fixes that have enabled the Init Resistance up to this point, including openRC and eudev.

So my gut says, keep tracking with them, and see how they decide to address the issue of sysvinit going away, if and when that issue gets to be critical.

In a way this is like picking a step-parent.

I can see the potential in having someone like Void or Devuan in that role, but if worse came to worst, Gentoo is probably where I’d run anyway.

(Edit to add this link to reddit, where the same topic (more or less) is being discussed today.)

Thanks, interesting.

While s6 is probably the best alternative, mixing init and supervision from two different packages is what would make me want to use openrc init and supervision only.

Just to give a small comparison on 2 similar environments:

[locala ~]$ pstree                                               (21-Apr 11:30)
s6-svscan-+-VBoxClient---VBoxClient---{SHCLIP}
          |-VBoxClient---VBoxClient
          |-VBoxClient---VBoxClient---{X11 events}
          |-VBoxClient---VBoxClient-+-{dndHGCM}
          |                         `-{dndX11}
          |-compton
          |-dbus-daemon
          |-dbus-launch
          |-s6-supervise---s6-log
          |-s6-supervise---login---startx---xinit-+-Xorg---{InputThread}
          |                                       `-openbox---urxvt---zsh---pst+
          |-s6-supervise---agetty
          |-s6-supervise---s6-uevent-liste---s6-uevent-spawn
          |-s6-supervise
          |-s6-supervise---s6-ipcserverd
          |-s6-supervise---s6-svscan-+-4*[s6-supervise---s6-log]
          |                          |-s6-supervise---s6-ipcserverd---ucspilogd
          |                          |-s6-supervise---VBoxService-+-{automount}
          |                          |                            |-{control}
          |                          |                            |-{cpuhotplug+
          |                          |                            |-{memballoon+
          |                          |                            |-{timesync}
          |                          |                            |-{vminfo}
          |                          |                            `-{vmstats}
          |                          |-s6-supervise---dbus-daemon
          |                          |-s6-supervise---s6-fdholderd
          |                          |-s6-supervise---s6-ipcserverd
          |                          `-s6-supervise---dhcpcd
          `-s6-supervise---udevd

[locala ~]$ pstree                                                                                                                            (21-Apr 11:39)
systemd-+-VBoxClient---VBoxClient---{SHCLIP}
        |-2*[VBoxClient---VBoxClient]
        |-VBoxClient---VBoxClient---{X11 events}
        |-VBoxClient---VBoxClient-+-{dndHGCM}
        |                         `-{dndX11}
        |-VBoxService-+-{automount}
        |             |-{control}
        |             |-{cpuhotplug}
        |             |-{memballoon}
        |             |-{timesync}
        |             |-{vminfo}
        |             `-{vmstats}
        |-compton
        |-dbus-daemon
        |-dhcpcd
        |-login---startx---xinit-+-Xorg-+-{InputThread}
        |                        |      |-{llvmpipe-0}
        |                        |      `-{llvmpipe-1}
        |                        `-openbox---urxvt---zsh---pstree
        |-systemd---(sd-pam)
        |-systemd-journal
        |-systemd-logind
        |-systemd-udevd
        `-tint2

I don’t have an openrc system around but should not be very different then systemd or runit in that regard.
The supervision layer is an extra layer on top of the init system, well suited for servers and more complex architecture but not many advantages as is, for an user machine.
In therms of ram there is an initial drawback but it does not consume more over time.

Having the same system for init/supervision has the advantage of not having to define/maintain twice the same services.

EDIT:
Did a quick openrc install, will try to add S6 on top this weekend:

~ >>> pstree                                                                   
init─┬─VBoxClient───VBoxClient───{SHCLIP}
     ├─VBoxClient───VBoxClient
     ├─VBoxClient───VBoxClient───{X11 events}
     ├─VBoxClient───VBoxClient─┬─{dndHGCM}
     │                         └─{dndX11}
     ├─VBoxService─┬─{automount}
     │             ├─{control}
     │             ├─{cpuhotplug}
     │             ├─{memballoon}
     │             ├─{timesync}
     │             ├─{vminfo}
     │             └─{vmstats}
     ├─5*[agetty]
     ├─compton
     ├─2*[dbus-daemon]
     ├─dbus-launch
     ├─dhcpcd
     ├─elogind
     ├─login───startx───xinit─┬─Xorg─┬─{InputThread}
     │                        │      ├─{llvmpipe-0}
     │                        │      └─{llvmpipe-1}
     │                        └─openbox─┬─urxvt───zsh───pstree
     │                                  └─xterm───zsh
     └─udevd

Artoo,

I agree with that. Also since you do most of this work please take the path of least resistance.

db[quote=“artoo, post:9, topic:22170”]
Thanks, interesting.

While s6 is probably the best alternative, mixing init and supervision from two different packages is what would make me want to use openrc init and supervision only.
[/quote]

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.