# phpman > info > runit

[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 boot-
       ing, 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)](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 termi-
       nates 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 re-
       booted, 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 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)](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)
