View file File name : index.html Content :<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <title>runit - a UNIX init scheme with service supervision</title> </head> <body> <a href="http://smarden.org/pape/">G. Pape</a> <hr> <h1>runit - a UNIX init scheme with service supervision</h1> <hr> <a href="install.html">How to install runit</a><br> <a href="upgrade.html">Upgrading from previous versions of runit</a> <p> <a href="benefits.html">Benefits</a><br> <a href="replaceinit.html">How to replace init</a><br> <a href="useinit.html">How to use runit with current init</a><br> <a href="usedietlibc.html">How to use dietlibc</a><br> <a href="faq.html">Frequently asked questions</a><br> <p> <a href="runlevels.html">Runlevels</a><br> <a href="dependencies.html">Service dependencies</a><br> <a href="runscripts.html">A collection of run scripts</a><br> <p> <a href="runit.8.html">The <tt>runit</tt> program</a><br> <a href="runit-init.8.html">The <tt>runit-init</tt> program</a><br> <br> <a href="sv.8.html">The <tt>sv</tt> program</a><br> <br> <a href="runsvdir.8.html">The <tt>runsvdir</tt> program</a><br> <a href="runsvchdir.8.html">The <tt>runsvchdir</tt> program</a><br> <a href="runsv.8.html">The <tt>runsv</tt> program</a><br> <br> <a href="svlogd.8.html">The <tt>svlogd</tt> program</a><br> <br> <a href="chpst.8.html">The <tt>chpst</tt> program</a><br> <a href="utmpset.8.html">The <tt>utmpset</tt> program</a><br> <hr> <i>runit</i> is a cross-platform Unix init scheme with service supervision, a replacement for <a href="ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/">sysvinit</a>, and other init schemes. It runs on <b>GNU/Linux</b>, <b>*BSD</b>, <b>MacOSX</b>, <b>Solaris</b>, and can easily be adapted to other Unix operating systems. If <i>runit</i> runs for you on any other operating system, please <a href="mailto:supervision@list.skarnet.org">let me know</a>. <hr> <i>runit</i> is discussed on the <a href="http://skarnet.org/lists/#supervision"> <supervision@list.skarnet.org></a> mailing list. Please contact this list and not me privately. <p> To subscribe send an empty email to <a href="mailto:supervision-subscribe@list.skarnet.org"> <supervision-subscribe@list.skarnet.org></a>. <p> Mailing list archives are available at <a href="http://skarnet.org/lists/archive.cgi?2">skarnet.org</a>, and <a href="http://news.gmane.org/gmane.comp.sysutils.supervision.general"> gmane.org</a>. <hr> The program <a href="runit.8.html">runit</a> is intended to run as Unix process no 1, it is automatically started by the <a href="runit-init.8.html">runit-init</a> <tt>/sbin/init</tt>-replacement if this is started by the kernel. <p> <a href="runit.8.html">runit</a> performs the system's <i>booting</i>, <i>running</i> and <i>shutting down</i> in <b>three stages</b>: <ul> <li><b>Stage 1:</b><br> <i>runit</i> starts <tt>/etc/runit/1</tt> and waits for it to terminate. The system's one time initialization tasks are done here. <tt>/etc/runit/1</tt> has full control over <tt>/dev/console</tt> to be able to start an emergency shell in case the one time initialization tasks fail. <li><b>Stage 2:</b><br> <i>runit</i> starts <tt>/etc/runit/2</tt> which should not return until the system is going to halt or reboot; if it crashes, it will be restarted. Normally, <tt>/etc/runit/2</tt> runs <a href="runsvdir.8.html">runsvdir</a>. In Stage 2 <i>runit</i> optionally handles the INT signal (ctrl-alt-del keyboard request on Linux/i386). <li><b>Stage 3:</b><br> If <i>runit</i> is told to halt or reboot the system, or Stage 2 returns without errors, it terminates Stage 2 if it is running, and runs <tt>/etc/runit/3</tt>. The systems tasks to shutdown and halt or reboot are done here. </ul> These are working examples for Debian sarge: <a href="debian/1">/etc/runit/1</a>, <a href="debian/2">/etc/runit/2</a>, <a href="debian/3">/etc/runit/3</a>. <p> The program <a href="runit-init.8.html">runit-init</a> is intended to replace <tt>/sbin/init</tt>. The command <b><tt>init 0</tt></b> tells <i>runit</i> to halt the system, and <b><tt>init 6</tt></b> to reboot. <a href="runlevels.html">Runlevels</a> are handled through the <a href="runsvdir.8.html">runsvdir</a> and <a href="runsvchdir.8.html">runsvchdir</a> programs. Service <a href="dependencies.html">dependencies</a> are resolved automatically. <p> <i>runit</i> is optimized for reliability and small size. The amount of code in process no 1 should be minimal. <hr> See <a href="install.html">How to install runit</a> for installing <i>runit</i>, and <a href="replaceinit.html">How to replace init</a> for configuring <i>runit</i> to run as process no 1. See <a href="useinit.html">How to use with current init</a> if you want to use <i>runit</i> without replacing the current init scheme. Please read the list of <a href="faq.html">Frequently asked questions with answers</a>. <hr> If <i>runit</i> on Linux is compiled and linked with the <a href="http://www.fefe.de/dietlibc/">dietlibc</a>, it yields in a statically linked <tt>runit</tt> binary of 8.5k size and this <tt>ps axuw</tt> output on my system: <pre> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 20 16 ? S 2002 0:02 runit </pre> I recommend doing this; for instructions, see <a href="usedietlibc.html">How to use dietlibc</a>. <hr> The following distributions are known to include or package <i>runit</i>: <ul> <li><a href="http://packages.qa.debian.org/runit"> Debian GNU/Linux</a> (as alternative init scheme) <li><a href="http://www.freshports.org/sysutils/runit/"> FreeBSD</a> <li><a href="http://www.openbsd.org/cgi-bin/cvsweb/ports/sysutils/runit/"> OpenBSD</a> <li><a href="http://pkgsrc.se/wip/runit/"> NetBSD</a> <li><a href="http://packages.ubuntu.com/runit"> Ubuntu</a> (as alternative init scheme) <li><a href="http://packages.gentoo.org/package/sys-process/runit"> Gentoo</a> <li><a href="https://code.google.com/p/runit-for-lfs/"> Linux from Scratch</a> <li><a href="http://www.finnix.org/"> Finnix</a> <li><a href="http://www.smeserver.org/"> SME server</a> <li><a href="http://linux-vserver.org/Running_runit-supervised_services_inside_a_vserver"> Linux-VServer</a> <li><a href="http://www.t2-project.org/"> T2</a> <li><a href="http://www.gobolinux.org/"> GoboLinux</a> <li><a href="http://www.dragora.org/"> Dragora GNU/Linux</a> (as default init scheme) <li><a href="https://wiki.archlinux.org/index.php/Runit"> ArchLinux</a> <li><a href="http://www.opensde.org/"> OpenSDE</a> <li><a href="http://zinux.cynicbytrade.com/"> Zinux Linux</a> (as default init scheme) <li><a href="http://deepofix.org/"> deepOfix Mail Server</a> (as default init scheme) </ul> If you know of more distributions, please <a href="mailto:supervision@list.skarnet.org">let me know</a>. <hr> <b><i>runit</i> in use</b>: I replaced <i>sysvinit</i> successfully with <i>runit</i> on several server systems and a laptop running Debian/GNU Linux sarge, woody, and potato. Here is an example: <pre> # 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 </pre> <hr> See <a href="http://smarden.org/runit/">http://smarden.org/runit/</a> for recent informations. <hr> Related links: <ul> <li><a href="http://www.fefe.de/minit/"> minit</a> - a small yet feature-complete init <li><a href="http://multivac.cwru.edu/svscan-1/"> svscan as process 1</a> - by Paul Jarc <li><a href="ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/"> sysvinit</a> - source code <li><a href="http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/init/"> FreeBSD's init</a> - CVS repository <li><a href="http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/init/"> NetBSD's init</a> - CVS repository <li><a href="http://www.openbsd.org/cgi-bin/cvsweb/src/sbin/init/"> OpenBSD's init</a> - CVS repository <li><a href="http://www.atnf.csiro.au/~rgooch/linux/boot-scripts/"> Linux Boot Scripts</a> - by Richard Gooch </ul> <hr> <address><a href="mailto:pape@smarden.org"> Gerrit Pape <pape@smarden.org> </a></address> </body> </html>