Benefits
How to replace init
How to use runit with current init
How to use dietlibc
Runlevels
Service dependencies
A collection of run scripts
The runit program
The runit-init program
The runsvdir program
The runsvchdir program
The runsv program
The runsvstat program
The runsvctrl program
The svlogd program
The svwaitdown program
The svwaitup program
The chpst program
The utmpset program
Warning: Replacing sysvinit or init can cause the system's boot to fail. Make sure you are able to recover and repair your system, for example if you run a boot loader, it should be able to pass init=/bin/sh to the kernel.
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. sysvinit's command shutdown will keep working. On *BSD systems use init 0 for system halt and init 6 for 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.