summary refs log tree commit diff
path: root/doc/runit.8.html
blob: a92c3077c12d054357ec9840f392d8422736e67e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74



<html>
<head>
<title>runit(8) manual page</title>
</head>
<body bgcolor='white'>
<a href='#toc'>Table of Contents</a><p>

<h2><a name='sect0' href='#toc0'>Name</a></h2>
runit - a UNIX process no 1 
<h2><a name='sect1' href='#toc1'>Synopsis</a></h2>
<b>runit</b> 
<h2><a name='sect2' href='#toc2'>Description</a></h2>
<b>runit</b> must be run
as Unix process no 1. It performs the system&rsquo;s booting, running, and shutdown
in three Stages: 
<h2><a name='sect3' href='#toc3'>Stage 1</a></h2>
<b>runit</b> runs <i>/etc/runit/1</i> and waits for it to terminate.
The system&rsquo;s one time tasks are done here. <i>/etc/runit/1</i> has full control
of <i>/dev/console</i> to be able to start an emergency shell if the one time
initialization tasks fail. If <i>/etc/runit/1</i> itself crashes, <b>runit</b> will skip
stage 2 and enter stage 3. 
<h2><a name='sect4' href='#toc4'>Stage 2</a></h2>
<b>runit</b> runs <i>/etc/runit/2</i>, which should
not return until system shutdown; if it crashes, it will be restarted. Normally
<i>/etc/runit/2</i> starts <i><b>runsvdir</b>(8)</i>. <b>runit</b> is able to handle the ctrl-alt-del
keyboard request in Stage 2, see below. 
<h2><a name='sect5' href='#toc5'>Stage 3</a></h2>
If <b>runit</b> is told to shutdown
the system, or the Stage 2 returns without errors, it terminates Stage
2 if it is running, and runs <i>/etc/runit/3</i>. The systems tasks to shutdown
and halt or reboot are done here. If Stage 3 returns, <b>runit</b> checks if the
file <i>/etc/runit/reboot</i> exists and has the execute by owner permission set.
If so, the system is rebooted, it&rsquo;s halted otherwise. 
<h2><a name='sect6' href='#toc6'>Ctrl-alt-del</a></h2>
If <b>runit</b>
receives the ctrl-alt-del keyboard request and the file <i>/etc/runit/ctrlaltdel</i>
exists and has the execute by owner permission set, <b>runit</b> runs <i>/etc/runit/ctrlaltdel</i>,
waits for it to terminate, and then sends itself a CONT signal. 
<h2><a name='sect7' href='#toc7'>Signals</a></h2>
<b>runit</b>
only accepts signals in Stage 2. <p>
If <b>runit</b> receives a CONT signal and the
file <i>/etc/runit/stopit</i> exists and has the execute by owner permission set,
<b>runit</b> is told to shutdown the system. <p>
if <b>runit</b> receives an INT signal, a
ctrl-alt-del keyboard request is triggered. 
<h2><a name='sect8' href='#toc8'>See Also</a></h2>
<i>runit-init(8)</i>, <i>runsvdir(8)</i>,
<i>runsvchdir(8)</i>, <i>runsv(8)</i>, <i>runsvctrl(8)</i>, <i>runsvstat(8)</i>, <i>svwaitdown(8)</i>, <i>svwaitup(8)</i>,
<i>svlogd(8)</i>, <i>utmpset(8)</i> <p>
<i>http://smarden.org/runit/</i> 
<h2><a name='sect9' href='#toc9'>Author</a></h2>
Gerrit Pape &lt;pape@smarden.org&gt;
<p>

<hr><p>
<a name='toc'><b>Table of Contents</b></a><p>
<ul>
<li><a name='toc0' href='#sect0'>Name</a></li>
<li><a name='toc1' href='#sect1'>Synopsis</a></li>
<li><a name='toc2' href='#sect2'>Description</a></li>
<li><a name='toc3' href='#sect3'>Stage 1</a></li>
<li><a name='toc4' href='#sect4'>Stage 2</a></li>
<li><a name='toc5' href='#sect5'>Stage 3</a></li>
<li><a name='toc6' href='#sect6'>Ctrl-alt-del</a></li>
<li><a name='toc7' href='#sect7'>Signals</a></li>
<li><a name='toc8' href='#sect8'>See Also</a></li>
<li><a name='toc9' href='#sect9'>Author</a></li>
</ul>
</body>
</html>