Benefits
How to replace init
How to use runit with current init
How to use dietlibc
Frequently asked questions
Runlevels
Service dependencies
A collection of run scripts
The runit program
The runit-init program
The sv program
The runsvdir program
The runsvchdir program
The runsv program
The svlogd program
The chpst program
The utmpset program
To subscribe send an empty email to <supervision-subscribe@list.skarnet.org>.
Mailing list archives are available at skarnet.org, and gmane.org.
runit performs the system's booting, running and shutting down in three stages:
The program runit-init is intended to replace /sbin/init. The command init 0 tells runit to halt the system, and init 6 to reboot. Runlevels are handled through the runsvdir and runsvchdir programs. Service dependencies are resolved automatically.
runit is optimized for reliability and small size. The amount of code in process no 1 should be minimal.
# strings /proc/1/exe |grep Id $Id: runit.c,v 1.7 2002/02/13 09:59:52 pape Exp $ # uptime 11:59:13 up 365 days, 23:22, 3 users, load average: 0.01, 0.02, 0.00 # ps axuw |head -n20 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 20 16 ? S 2002 0:07 runit root 2 0.0 0.0 0 0 ? SW 2002 0:00 [keventd] root 3 0.0 0.0 0 0 ? SWN 2002 0:51 [ksoftirqd_CPU0] root 4 0.0 0.0 0 0 ? SW 2002 144:38 [kswapd] root 5 0.0 0.0 0 0 ? SW 2002 0:08 [bdflush] root 6 0.0 0.0 0 0 ? SW 2002 7:24 [kupdated] root 168 0.0 0.0 1652 168 ? S 2002 0:27 /usr/sbin/cron root 174 0.0 0.0 36 24 ? S 2002 1:06 runsvdir /var/service log: ............................................................................................... root 176 0.0 0.0 20 20 ? S 2002 0:00 runsv qmail-send root 177 0.0 0.0 20 20 ? S 2002 0:00 runsv getty-5 root 178 0.0 0.0 20 20 ? S 2002 0:00 runsv getty-4 root 179 0.0 0.0 20 20 ? S 2002 0:00 runsv getty-3 root 180 0.0 0.0 20 20 ? S 2002 0:00 runsv getty-2 root 182 0.0 0.0 20 20 ? S 2002 0:00 runsv socklog-unix root 183 0.0 0.0 1256 4 tty5 S 2002 0:00 /sbin/getty 38400 tty5 linux root 184 0.0 0.0 1256 4 tty3 S 2002 0:00 getty 38400 tty3 linux root 185 0.0 0.0 20 20 ? S 2002 0:00 runsv socklog-klog root 186 0.0 0.0 20 20 ? S 2002 0:00 runsv ssh root 187 0.0 0.0 1256 4 tty4 S 2002 0:00 getty 38400 tty4 linux # pstree runit-+-bdflush |-cron |-gcache |-keventd |-ksoftirqd_CPU0 |-kswapd |-kupdated `-runsvdir-+-runsv-+-multilog | `-qmail-send-+-qmail-clean | |-qmail-lspawn | `-qmail-rspawn---qmail-remote |-4*[runsv---getty] |-2*[runsv-+-multilog] | `-socklog] |-runsv-+-multilog | `-sshd-+-sshd---sshd---bash---bash---pstree | `-sshd---sshd---rsync |-runsv---clockspeed |-runsv-+-dnscache | `-multilog |-runsv---apache-ssl-+-9*[apache-ssl] | |-gcache | `-4*[multilog] |-7*[runsv-+-multilog] | `-tcpserver] |-4*[runsv-+-multilog] | `-tinydns] |-runsv---uncat |-2*[runsv-+-multilog] | `-tcpsvd] |-runsv-+-svlogd | `-tcpsvd-+-smtpfront-qmail | `-smtpfront-qmail---qmail-queue `-runsv-+-svlogd `-tcpsvd---bincimap-up---bincimapd
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 20 16 ? S 2002 0:02 runitI recommend doing this; for instructions, see How to use dietlibc.