runit(8) System Manager's Manual runit(8)

# [NAME](#NAME)

runit - a UNIX process no 1

# [SYNOPSIS](#SYNOPSIS)

**runit**

# [DESCRIPTION](#DESCRIPTION)

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

# [STAGE 1](#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](#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)](/man/os/runit/runsvdir.8). **runit** is able to handle the ctrl-alt-del keyboard request in stage 2, see below.

# [STAGE 3](#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 */etc/runit/reboot* exists and has the execute by owner permission set. If so, the system is rebooted, it's halted otherwise. If */etc/runit/nosync* exists, **runit** doesn't invoke sync(). This is useful in vservers.

# [CTRL-ALT-DEL](#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](#SIGNALS)

**runit** only accepts signals in stage 2.

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

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

# [SEE ALSO](#SEE_ALSO)

[runit-init(8)](/man/os/runit/runit-init.8), [runsvdir(8)](/man/os/runit/runsvdir.8), [runsvchdir(8)](/man/os/runit/runsvchdir.8), [sv(8)](/man/os/runit/sv.8), [runsv(8)](/man/os/runit/runsv.8), [chpst(8)](/man/os/runit/chpst.8), [utmpset(8)](/man/os/runit/utmpset.8), [svlogd(8)](/man/os/runit/svlogd.8)

https://smarden.org/runit/

# [AUTHOR](#AUTHOR)

Gerrit Pape &lt;pape@smarden.org&gt;

---

Document: runit(8) from runit 2.3.1-r3 (Chainguard OS)
Source: https://github.com/g-pape/runit
