42 lines
1.3 KiB
Markdown
42 lines
1.3 KiB
Markdown
|
# 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
|