# man > runit(8)

[_runit_(8)](https://www.chedong.com/phpMan.php/man/runit/8/markdown)                               System Manager's Manual                              [_runit_(8)](https://www.chedong.com/phpMan.php/man/runit/8/markdown)

## NAME
       runit - a UNIX process no 1

## SYNOPSIS
### runit

## DESCRIPTION
       **runit **must be run as Unix process no 1.  It performs the system's booting, running, and shut‐
       down 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 ex‐
       its 111, it will be restarted.  Normally _/etc/runit/2_ starts [**runsvdir**(8)](https://www.chedong.com/phpMan.php/man/runsvdir/8/markdown).  **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_ ex‐
       ists 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
       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 direc‐
       tory 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)](https://www.chedong.com/phpMan.php/man/runit-init/8/markdown), [runsvdir(8)](https://www.chedong.com/phpMan.php/man/runsvdir/8/markdown), [runsvchdir(8)](https://www.chedong.com/phpMan.php/man/runsvchdir/8/markdown), [sv(8)](https://www.chedong.com/phpMan.php/man/sv/8/markdown), [runsv(8)](https://www.chedong.com/phpMan.php/man/runsv/8/markdown), [chpst(8)](https://www.chedong.com/phpMan.php/man/chpst/8/markdown), [utmpset(8)](https://www.chedong.com/phpMan.php/man/utmpset/8/markdown), [svlogd(8)](https://www.chedong.com/phpMan.php/man/svlogd/8/markdown)

       <http://smarden.org/runit/>

## AUTHOR
       Gerrit Pape <<pape@smarden.org>>

                                                                                            [_runit_(8)](https://www.chedong.com/phpMan.php/man/runit/8/markdown)
