2018-01-13 01:40:42 +05:30
|
|
|
Using runit with OpenRC
|
|
|
|
=======================
|
2016-07-28 02:56:26 +05:30
|
|
|
|
|
|
|
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
|