runit

runit

TLDR

Start runit's 3-stage init scheme

$ runit
copy


Shut down runit
$ kill --CONT [runit_pid]
copy

SYNOPSIS

runit

DESCRIPTION

runit must be run as Unix process no 1. It performs the system's booting, running, and shutdown in three stages:

STAGE 1

runit runs /etc/runit/1 and waits for it to terminate. The system's one time tasks are done here. /etc/runit/1 has full control of /dev/console to be able to start an emergency shell if the one time initialization tasks fail. If /etc/runit/1 crashes, or exits 100, runit will skip stage 2 and enter stage 3.

STAGE 2

runit runs /etc/runit/2, which should not return until system shutdown; if it crashes, or exits 111, it will be restarted. Normally /etc/runit/2 starts runsvdir(8). runit is able to handle the ctrl-alt-del keyboard request in stage 2, see below.

STAGE 3

If runit is told to shutdown the system, or stage 2 returns, it terminates stage 2 if it is running, and runs /etc/runit/3. The systems tasks to shutdown and possibly halt or reboot the system are done here. If stage 3 returns, runit checks if the file /run/runit.reboot exists and has the execute by owner permission set. If so, the system is rebooted, it's halted otherwise. If /run/runit.nosync exists, runit doesn't invoke sync(). This is useful in vservers.

CTRL-ALT-DEL

If runit receives the ctrl-alt-del keyboard request and the file /etc/runit/ctrlaltdel exists and has the execute by owner permission set, runit runs /etc/runit/ctrlaltdel, waits for it to terminate, and then sends itself a CONT signal.

SIGNALS

runit only accepts signals in stage 2.

If runit receives a CONT signal and the file /run/runit.stopit exists and has the execute by owner permission set, runit is told to shutdown the system.

If runit receives a PWR signal, runit is told to shutdown the system.

if runit receives an INT signal, a ctrl-alt-del keyboard request is triggered.

ENVIRONMENT

When the runitdir=name variable is set and runit is init, runit will check if a directory named name exists in /etc/runit/runsvdir/ and then will use runsvchdir to change the directory of runsvdir to name in place of the default.

If runitdir is set to runitdir=solo runit will use the solo directory for runsvdir and it will also refrain from start any sysv service that is enabled in /etc/rc2.d/ This is intended for use with containers that need to start only some selected services.

SEE ALSO

runit-init(8), runsvdir(8), runsvchdir(8), sv(8), runsv(8), chpst(8), utmpset(8), svlogd(8) http://smarden.org/runit/

AUTHOR

Gerrit Pape <pape@smarden.org>

Copied to clipboard