aboutsummaryrefslogtreecommitdiffstats
path: root/doc/bin/system-init.html
blob: f744d6a6199acf73978289e85faa66ce2e6e7c93 (plain)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html>
<html>
	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<meta http-equiv="Content-Language" content="en" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
    	<title>system-init</title>
    	<meta name="Description" content="Init script for FreeBSD." />
    	<meta name="Keywords" content="goetia s6 s6-rc FreeBSD" />
	</head>
	<header>
		<p>
			<a href="//0x53.net/software/goetia/goetia-freebsd-init">goetia-freebsd-init</a>
			<br />
			<a href="//0x53.net/software/goetia">goetia</a>
			<br />
			<a href="//0x53.net/software">Software</a>
			<br />
			<a href="//0x53.net">0x53.net</a>
		</p>
	</header>
	<body>
		<h1>The system-init program</h1>
		<p>
			system-init is a minimal, scripted init to bring up a goetia based system.
		</p>
		<h2>Interface</h2>
		<pre>     system-init</pre>
		<ul>
			<li>
    			system-init takes no arguments.
			</li>
			<li>
    			It makes <code>/dev/console</code> its stdout and stderr.
			</li>
			<li>
    			It reads the environment variable <code>BUNDLE</code>,
				which can be specified on the Kernel command line.
				If it is undefined, it uses <code>default</code> as the value.
			</li>
			<li>
    			It reads the environment variable <code>PATH</code>,
				which can be specified on the Kernel command line.
				If it is undefined, it uses
				<code>/command:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/libexec:/usr/local/libexec</code>
				as the value.
			</li>
			<li>
    			It sets the <code>PATH</code> environment variable to the value
				chosen above.
			</li>
			<li>
    			It chdirs to <code>/</code>.
			</li>
			<li>
    			It runs <code><a href="https://skarnet.org/software/s6/s6-setsid.html">s6-setsid</a></code>
				to become the session leader.
			</li>
			<li>
    			It creates the
				<a href="//0x53.net/software/goetia/rundir.html">runtime directory</a>
				if it does not already exist.
			</li>
			<li>
    			It mounts the
				<a href="//0x53.net/software/goetia/rundir.html">runtime directory</a>
				tmpfs.
			</li>
			<li>
    			It copies the old system logs from the
				<code>system/uncaught-logs</code>
				subdirectory of the
				<a href="//0x53.net/software/goetia/logdir.html">log directory</a>
				to the
				<code>system/</code>
				subdirectory of the
				<a href="//0x53.net/software/goetia/rundir.html">runtime directory</a>
				if they exist.
			</li>
			<li>
    			It runs
				<code><a href="./prepare-svscan.html">prepare-svscan</a></code>
				with the proper arguments.
			</li>
			<li>
    			Finally, it executes into
				<code><a href="https://skarnet.org/software/s6/s6-svscan.html">s6-svscan</a></code>
				on the scandir represented by the
				<code>system/service</code>
				subdirectory of the
				<a href="//0x53.net/software/goetia/rundir.html">runtime directory</a>.
			</li>
		</ul>
		<h2>Exit codes</h2>
		<ul>
			<li>
    			system-init usually executes into
				<a href="https://skarnet.org/software/s6/s6-svscan.html">s6-svscan</a>
				which exits according to its page.
			</li>
			<li>
    			Since system-init is an
				<a href="https://skarnet.org/software/execline/">execline</a>
				script, it exits with an approximation
				of employed program that failed.
			</li>
			<li>
    			system-init mostly uses
				<a href="https://skarnet.org/software/execline/">execline</a>
				and
				<a href="https://skarnet.org/software/s6/">s6</a>
				software, the exit behaviour of which can be looked up on
				their respective pages.
			</li>
			<li>
    			See also:
				<a href="https://skarnet.org/software/execline/exitcodes.html">execline exit code handling</a>.
			</li>
		</ul>
		<h2>Options</h2>
		<ul>
			<li>
    			There are no options to system-init.
			</li>
		</ul>
		<h2>Notes</h2>
		<p>
			system-init is primarily intended to be used
			as an init for an acutal boot process, not for containers.
		</p>
	</body>
</html>