# phpman > 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)
