aboutsummaryrefslogtreecommitdiff
path: root/docs/defconfig.md
blob: c4ab4777903a855e59260792b3fea762a88ec6b3 (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
# Default Service Configuration

## Pseudo Services

The default configuration contains a number of "pseudo services" in the boot
target that don't actually do anything but are merely used as anchors in
service dependencies, i.e. they indicate that some sort of milestone in the
boot sequence has been reached. Everything that is part of that milestone
specifies that it should be run *before* that pseudo service and everything
that requires that this milestone has been reached, specifies that it wants
to run afterwards.

The pseudo targets are (in the order that they are executed):

 * vfs

   All services that do mount point setup go before this, all service that
   depend on the fully mounted rootfs go after this.

 * sysinit

   The system has reached a sane state, i.e. the hostname is set, the system
   clock has a sane value, modules and kernel parameters are loaded, some
   very basic, fundamental services are running.
   Everything that is part of that setup process goes between `vfs` and
   `sysinit`, everything that requires a sane setup goes *after* `sysinit`.

 * network

   Network configuration is done. All services that do network configuration
   should position themselves between `sysinit` and `network`. Everything that
   requires a fully configured networking setup should go *after* `network`.

## Default Bootup Services

This section outlines the services for the boot target that are enabled by
default.


The following services are enabled by default and run *before* the `vfs` target
for filesystem setup:

 * procfs - mount `procfs` to `/proc` and try to mount additional pseudo
   filesystems in `/proc` such as `binfmt_misc`
 * tmpfs - mount a `tmpfs` to `/tmp`
 * sysfs - mount `sysfs` to `/sys` and try to mount additional pseudo
   filesystems in `/sys` (e.g. `securityfs`, `configfs`, ...)
 * devfs - mount `devtmpfs` to `/dev`, try to mount additional pseudo
   filesystems in `/dev` (e.g. `devpts`, `mqueue`, ...) and try to create
   some additional device nodes and symlinks.
 * tmpfsvar - mount a `tmpfs` to `/var` and populate it with a default set
   of files and directories. Overlay mount `/var/lib` with lower dir on
   `/cfg/preserve/var_lib/` and upper on `/cfg/overlay/var_lib/`.
 * tmpfsrun - mount a `tmpfs` to `/run`, symlink `/var/run` to `/run` and
   `/var/lock` to `/run/lock`.
 * mountusr - overlay mount setup for `/usr`. Lower dir is on
   `/cfg/preserve/usr/` and upper on `/cfg/overlay/usr/`.


The following services are enabled by default and configured to run *after*
the `vfs` target and *before* the `sysinit` target:

 * hostname - reload hostname `/etc/hostname`
 * loopback - bring the loopback device up
 * modules - iterate over the file `/etc/modules` and try to load each module
   using modprobe.
 * sysctl - restore kernel parameters using `sysctl --system`. See `sysctl(8)`
   for a list of possible locations that the parameters are read from.
 * usyslogd - Starts and supervises the `usyslogd` syslog implementation.
 * klogd - Starts and supervises the `klogd` daemon.


The following services are enabled by default and configured to run *after*
the `sysinit` target and *before* the `network` target:

 * ifcfg - static network configuration
   Does the static network configuration outlined in [network.md](network.md)


The following services are enabled by default and configured to run *after*
the `network` target:

 * gcrond


## Default Shutdown and Reboot Services

For the shutdown and reboot targets, the following services are executed:

 * sigterm - send the SIGTERM signal to all processes and wait for 5 seconds
 * sigkill - send the SIGKILL signal to all remaining processes
 * ifdown - bring all network interfaces down
 * unmount - unmount the overlay mount points and the underlying
   writeable filesystem
 * sync - run the sync command


## Additional Services not Enabled by Default

 * agetty - A parameterizeable, respawn type `agetty` service. The first
   parameter is the terminal device that the getty should run on.
 * consolefont - If enabled, run once before sysinit. Sets the console font
   to the first parameter.
 * dhcpcdmaster - If one or more network interfaces should be configured using
   dhcpcd, this service starts a central `dhcpcd` master instance.
 * dhcpcd - A parameterizeable single shot service that signals the `dhcpcd`
   master that it should configure a specific interface. The first parameter
   is the interface that should be configured by `dhcpcd`.
 * dnsmasq - A respawn type service for the `dnsmasq` DNS and DHCP server.
 * hostapd - If the system should operate a WIFI access point, this respawn
   type service can be enabled to manage an instace of the `hostapd` program.
 * unbound - A respawn type service that manages an instance of the `unbound`
   name resolver.
 * hwclock - If the system has a hardware clock, this service can restore the
   kernels clock from the hardware at bootup, between the `vfs` and `sysinit`
   targets.
 * nft - If enabled, restores net filter table rules during boot.
 * sshd_keygen - A wait type service that generates host keys for the OpenSSH
   server and then disables itself.
 * sshd - Starts an OpenSSH server after the network pseudo service and after
   the sshd_keygen service.
 * nginx - Starts the Nginx server after the network pseudo serivce.