runit (a UNIX init scheme with service supervision)
A cross-platform Unix init scheme with service supervision, a
replacement for sysvinit, and other init schemes.
runit can replace init or its service supervision can be used with
traditional init. runit is compatible with djb's daemontools.
By default, this slackbuild sets-up a basic configuration to replace
init with runit. To disable this, pass CONFIG=no to the script.
To use runit with init, just call it
/sbin/runsvdir-start &
To replace init with runit, reboot and enter init=/sbin/runit-init in
the Lilo prompt.
Alternatively, if you do not have a multi boot system, you may append
this line in /etc/lilo.conf
E.g:
append="vt.default_utf8=0 init=/sbin/runit-init"
Then run lilo:
# lilo -v
Or just replace /sbin/init with /sbin/runit-init
# mv /sbin/init /sbin/init.sysv
# cp /sbin/runit-init /sbin/init
Be warned that if you had booted with the original init, the system may
refuse to reboot, therefore boot from runit-init first.
To migrate a service to runit, switch it off and disable it as usual,
place an initialisation script called run under a suitably named
directory under /etc/sv/ and symlink it to /service.
E.g.:
# /etc/rc.d/rc.networkmanager stop
# chmod -x /etc/rc.d/rc.networkmanager
# mkdir /etc/sv/networkmanager/
Write a script to start the service in /etc/sv/networkmanager/run
such as:
#!/bin/sh exec NetworkManager -n > /dev/null 2>&1
Give it executable permission:
# chmod +x /etc/sv/networkmanager/run
Link it to /service and NetworkManager will start in a few seconds and
enabled under current runlevel
# ln -s /etc/sv/networkmanager /service
Hint:
To Reboot:
# runit-init 6
To Halt:
# runit-init 0
A /usr/sbin/shutdown shell script has been included with the
configuration files if you enabled them.