Beginning with OpenRC-0.21, we support using runit [1] in place of start-stop-daemon for monitoring and restarting daemons.
Documenting runit in detail is beyond the scope of this guide. It will document how to set up OpenRC services to communicate with runit.
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.
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
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.