Runit

runit is an init replacement with service monitoring. It can be used in conjunction with OpenRC as an alternative to sysvinit or even replacing OpenRC as service manager.

PID 1 &mdash; init replacement
runit can be used as the system init. To do this, simply add  to your bootloader's command line and reboot. You can leave sysvinit installed and go back to it at any time by reverting the change.

Out of the box, has a very minimal configuration which will only get you to a console login. Although it would be optimal to have all your daemons started up in a single consistent way, you're free to mix and match between runit and OpenRC as you like. Your initscripts can be found in the "default" runlevel, which can be started automatically on boot with the existing "local" service:

Alternatively, you can add  to.

Or, if you prefer to do it manually

Reboot and shutdown
Runit is not directly compatible with sysvinit's, , , and  commands, however many programs (e.g. desktop environments) expect to be able to call some of these.

You can restore the functionality using some one-liner shell scripts:

Init and Service manager
Runit can also replace OpenRC as the service manager. To achieve this, delete all lines starting with  in. However, you have to replace the initscripts with your own scripts (or you can use an overlay) that do the same tasks (to see what tasks are being executed by OpenRC, one could run  and  ).

OpenRC Supervision Service
Runit can supervise processes without running as init, or even necessarily as root:

Local service
OpenRC can start this for you using (see  for more details):

OpenRC service
This does the same as the script above, but using OpenRC proper. As such, you can use the extra features it provides like initscript multiplexing.

External resources

 * Arch Linux Wiki
 * Gentoo Forums
 * supervision-scripts: a large, modular collection of scripts that can be used with runit.