openrc/runit-guide.md

1.3 KiB

Using runit with OpenRC

Beginning with OpenRC-0.21, we support using runit [1] in place of start-stop-daemon for monitoring and restarting daemons.

Setup

Documenting runit in detail is beyond the scope of this guide. It will document how to set up OpenRC services to communicate with runit.

Use Default start, stop and status functions

If you write your own start, stop and status functions in your service script, none of this will work. You must allow OpenRC to use the default functions.

Dependencies

All OpenRC service scripts that want their daemons monitored by runit should have the following line added to their dependencies to make sure the runit scan directory is being monitored.

need runsvdir

Variable Settings

The most important setting is the supervisor variable. At the top of your service script, you should set this variable as follows:

supervisor=runit

The second variable you need is runit_service. This is the path to the runit service you wish to control via OpenRC. The default is /etc/sv/${RC_SVCNAME}. This means that for an OpenRC service /etc/init.d/foo, you will need to create the same runit service in /etc/sv/foo.

This is very early support, so feel free to file bugs if you have issues.

[1] http://www.smarden.org/runit