This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 27
/
README
172 lines (117 loc) · 7.69 KB
/
README
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
Init Framework
________________________________________________________________________________
KISS Linux's portable init framework for use with any init, service manager or
device manager. It handles the boot (and shutdown) process and provides a
generic interface for controlling it.
The below components have been tested and work. Other software may work out of
the box as well, it just has not been tested. Send bug reports and support on
this side will be added where needed.
Tested init systems Tested service managers Tested device managers
* busybox init * busybox runit * mdev
* s6 (s6-svscan) * s6 * mdevd
* sinit * runit * udevd
* runit * no service manager * no device manager
* shinit
NOTE: Any combination of the above can be used. If not using a service manager,
ensure that you execute at least one getty for login to work. Also, some
init systems handle what baseinit does internally so support for them
here makes little sense.
[000] Index
________________________________________________________________________________
* /etc/rc.conf ........................................................... [001]
* CONFIG_INIT .......................................................... [002]
* CONFIG_SERVICE ....................................................... [003]
* CONFIG_SERVICE_DIR (runit and s6 only) ............................... [004]
* CONFIG_DEV ........................................................... [005]
* /etc/rc.d/ ............................................................. [006]
* /etc/rc.d/*.pre.boot ................................................. [007]
* /etc/rc.d/*.post.boot ................................................ [008]
* /etc/rc.d/*.pre.shutdown ............................................. [009]
* /etc/rc.d/*.post.shutdown ............................................ [010]
* Utilities .............................................................. [011]
* How To Package An Init ................................................. [012]
* Further Reading ........................................................ [013]
[001] /etc/rc.conf
________________________________________________________________________________
This file stores configuration for the boot/shutdown process and any scripts in
/etc/rc.d. [006] If the file does not exist, create it and if any options do not
exist, create them. If the options are unset (or not present) they take their
default values.
--[002] CONFIG_INIT ------------------------------------------------------------
The init to assume is in use. This setting does not enable the init but merely
tells baseinit which one is in use (so it can handle things accordingly).
Valid values are currently 'busybox' (default), 's6', 'sinit', 'runit',
'shinit'.
+----------------------------------------------------------------------------+
| |
| CONFIG_INIT=busybox |
| |
+----------------------------------------------------------------------------+
--[003] CONFIG_SERVICE ---------------------------------------------------------
The service manager to execute at the end of the boot process. Valid values
are currently: 'runit' (default), s6, none. If 'none' is used, baseinit will
not start a service manager and it is up to the user to spawn gettys, etc.
+----------------------------------------------------------------------------+
| |
| CONFIG_SERVICE=runit |
| |
+----------------------------------------------------------------------------+
--[004] CONFIG_SERVICE_DIR (runit and s6 only) ---------------------------------
The service directory to use.
+----------------------------------------------------------------------------+
| |
| CONVIG_SERVICE_DIR=/var/service |
| |
+----------------------------------------------------------------------------+
--[005] CONFIG_DEV -------------------------------------------------------------
The device manager to run during the init process. This is killed once boot is
complete for a supervised version to take its place. Valid values are
currently 'mdevd', 'mdev' (default) or 'udevd'.
+----------------------------------------------------------------------------+
| |
| CONFIG_DEV=mdev |
| |
+----------------------------------------------------------------------------+
[006] /etc/rc.d/
________________________________________________________________________________
Shell scripts are sourced from this directory at different stages in the boot
process based on file name. Any configuration made here will run under all
inits and service managers which use baseinit.
--[007] /etc/rc.d/*.pre.boot ---------------------------------------------------
Scripts in /etc/rc.d ending in .pre.boot are run at the start of the boot
process but after pseudo filesystems are mounted (/sys, /dev, etc).
--[008] /etc/rc.d/*.post.boot --------------------------------------------------
Scripts in /etc/rc.d ending in .boot are run at the end of the boot process
but before baseinit execs into CONFIG_SERVICE.
--[009] /etc/rc.d/*.pre.shutdown -----------------------------------------------
Scripts in /etc/rc.d ending in .pre.shutdown are run at the start of the
shutdown and reboot process. If a script needs to run only on one mode, it can
discern the shutdown type by checking the basename of $0.
--[010] /etc/rc.d/*.post.shutdown ----------------------------------------------
Scripts in /etc/rc.d ending in .post.shutdown are run at the end of the
shutdown and reboot process. If a script needs to run only on one mode, it can
discern the shutdown type by checking the basename of $0.
[011] Utilities
________________________________________________________________________________
The baseinit package provides two utilities. 'kpow' (signal reboot/shutdown to
the kernel) and 'respawn' (rerun command when it exits/dies).
These are only interesting to those looking to make larger modifications via
/etc/rc.d. The respawn command should allow those not using a service manager
to more easily spawn some gettys via /etc/rc.d.
[012] How To Package An Init
________________________________________________________________________________
To package an init and have it use baseinit set it to run /usr/lib/init/rc.boot
at power on, /usr/lib/init/rc.shutdown at shutdown and /usr/lib/init/rc.reboot
at reboot.
Then, the package should provide /usr/bin/init, /usr/bin/poweroff and
/usr/bin/reboot. This allows the alternatives system to be used and makes
swapping between things easy.
Last, if the init needs modifications made to baseinit open an issue here or
open a pull request. This is where CONFIG_INIT comes into play.
[013] Further Reading
________________________________________________________________________________
- #/wiki/service-management
- #/wiki/pkg/busybox
- #/wiki/pkg/s6
- #/wiki/pkg/sinit
- #/wiki/pkg/baseinit