-
Notifications
You must be signed in to change notification settings - Fork 11
Home
So, what is runit?
From Gerrit Pape's original description:
"runit is a cross-platform Unix init scheme with service supervision, a replacement for sysvinit, and other init schemes. It runs on GNU/Linux, *BSD, MacOSX, Solaris, and can easily be adapted to other Unix operating systems."
If your OS choice is a POSIX-like OS at it's core, the odds are rather good that runit will work rather well as an init/services engine and framework for that OS.
The program runit is intended to run as POSIX/SysV process number 1; it is automatically started by the runit-init /sbin/init-replacement if this is started by the kernel of your chosen OS.
runit performs the system's booting, running and shutting down in three stages:
-
Stage 1: runit starts /etc/runit/1 and waits for it to terminate. The system's one time initialization tasks are done here. /etc/runit/1 has full control over /dev/console to be able to start an emergency shell in case the one time initialization tasks fail.
-
Stage 2: runit starts /etc/runit/2 which should not return until the system is going to halt or reboot; if it crashes, it will be restarted. Normally, /etc/runit/2 runs runsvdir. In Stage 2 runit optionally handles the INT signal (ctrl-alt-del keyboard request on Linux/i386).
-
Stage 3: If runit is told to halt or reboot the system, or Stage 2 returns without errors, it terminates Stage 2 if it is running, and runs /etc/runit/3. The systems tasks to shutdown and halt or reboot are done here.
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 number 1 should be minimal. This is for security and robustness reasons. More code equates to attack surfaces with a program that is literally at the root of all of the userland processes. With process number 1 compromised, there is no security measures possible.
About runit:
Benefits
Frequently Asked Questions (FAQ)
Building runit:
Setting up runit:
Replacing Init
Running WITH Init
Runlevels
Service Dependencies
Execution Modifiers
Using runit commands:
runit
runit-init
sv
runsvdir
runsvchdir
runsv
svlogd
chpst
utmpset