Table of Contents
Startup
System configuration
Service bootstrap
Historically, the startup system has recently moved from init to systemd.
Ten years ago, most distributions used SysV Init. Various distributions developed new and improved init systems. Ubuntu built Upstart, for example. As of 2020, most distributions have switched to systemd, developed at Red Hat. It was a long and controversial adoption period, and still today Ubuntu version 20 supports both init and systemd. So one can find remnants of SysVInit still present, though systemd-init is the primary startup system.
For example, the following are from SysV init:
$ service --status-all # list the startup services $ ls /etc/init.d # list the scripts to start and manage the services
These have been replaced by systemd
$ systemctl $ ls /lib/systemd/system
So let's look at the cron service. For every script in /etc/init.d, there is a unit file in /lib/systemd/system.
- /etc/init.d/cron → /lib/systemd/system
With SysV Init you could run the init.d script directly:
$ exec /etc/init.d/cron -options
or you could use the service command.
$ service cron start
Now in systemd, you use the systemctl command.
$ systemctl cron start
Other tools /lib/lsb/init-functions /var/name.pid ?
Configuration files: /etc/default/name /etc/name/name.conf
Startup Services
Notes “zeroconf network configuration, when user plugs laptop into network, including DNS service discovery Lennart Poettering 2005 avahi is the name of a lemur in Madagascar copy of bonjour”
Name | Description | Run | Files |
---|---|---|---|
acpid | Advanced Configuration and Power Interface. Provide a socket to multiplex kernel ACPI events. | daemon | /usr/sbin/acpid |
alsa-utils | Audio Levels. Save and restore at bootup and shutdown. | run once | /usr/sbin/alsactl /usr/sbin/alsactl /run/alsa /usr/share/alsa/utils.sh /var/lib/alsa/asound.state |
anacron | Anachronistic cron. Run once at startup to catch up with missed jobs. Also called by cron. | run once | /usr/sbin/anacron |
apparmor | AppArmor | ? | /lib/apparmor/rc.apparmor.functions /sys/module/apparmor /rofs/etc/apparmor.d |
apport | Automatic Crash Report generation | ? | /usr/share/apport/apport /lib/lsb/init-functions |
avahi-daemon | Zeroconf Network Configuration. Copy of Bonjour. | daemon | /usr/sbin/avahi-daemon /etc/default/avahi-daemon |
bluetooth | start bluetooth daemons | daemon | /sbin/bluetoothd /etc/default/bluetooth |
console-setup.sh | Set console font and keymap. | run once | /lib/console-setup/console-setup.sh |
cron | cron scheduler | daemon | /usr/sbin/cron /var/run/crond.pid /etc/default/cron /etc/pam.d/cron |
cups | Print Spooler and Server. has web interface at localhost:631 | daemon | /usr/sbin/cupsd /run/cups/ |
cups-browsed | Make network printers available locally, by browsing Bonjour broadcasts. | daemon | /usr/sbin/cups-browsed /var/run/cups |
dbus | D-Bus. interprocess messaging | daemon | /usr/sbin/dbus-daemon /usr/sbin/dbus-uuidgen /var/run/dbus /etc/default/dbus |
gdm3 | GNOME display manager | daemon | /usr/sbin/gdm3 /var/run/gdm3.pid /usr/share/gdm/generate-config |
grub-commoplymouth-logn | Record successful boot. If GRUB suspects previous boot was unsuccessful, it displays the boot menu. | run once | /boot/grub/grubenv |
hwclock.sh | Set and adjust CMOS clock. Sync hardware and system clock time. Run at startup and shutdown. | run once | /sbin/hwclock /etc/default/hwclock /etc/default/rcS |
irqbalance | Balance interrupts for SMP systems. | daemon | /usr/sbin/irqbalance /run/irqbalance.pid /etc/default/irqbalance |
kerneloops | Send kernel crash reports to oops.kernel.org. | daemon | /usr/sbin/kerneloops /etc/default/kerneloops /var/run/kerneloops.pid |
keyboard-setup.sh | Setup the console keyboard layout. | run once | /lib/console-setup/keyboard-setup.sh |
kmod | Load the kernel modules listed in /etc/modules | run once | /etc/modules |
network-manager | Automatically switch network connections to the best available connection | daemon | |
openvpn | start openvpn | daemon | |
plymouth | Boot splash manager. Show and hide splash screen during boot. | run once | /etc/default/plymouth /lib/lsb/init-functions |
plymouth-log | Inform plymouth that /var/log is writable. | run once | /etc/default/plymouth-log /lib/lsb/init-functions |
pppd-dns | Restore /etc/resolve.conf if the system crashed before the ppp link was shut down. | run once | /lib/lsb/init-functions |
procps | Process parameters. Configure kernel parameters from /etc/sysctl.conf. | daemon | |
pulseaudio-enable-autospawn | Enable autospawn for pulseaudio daemon. | run once | |
rsync | Allow fast remote file copy, like RCP. | daemon | /usr/bin/rsync /etc/default/rsync /etc/rsyncd.conf /var/run/rsync.pid |
rsyslog | Rocket fast system for logging. Enhanced syslogd. | daemon | /usr/sbin/rsyslogd /run/rsyslogd.pid /etc/default/rsyslog /lib/lsb/init-functions |
saned | SANE network scanner server. | daemon | /usr/sbin/saned /etc/default/saned /lib/lsb/init-functions /var/run/saned.pid |
speech-dispatcher | Common interface to speech synthesizers. | daemon | /usr/bin/speech-dispatcher /run/speech-dispatcher/speech-dispatcher.pid /lib/lsb/init-functions |
spice-vdagent | Has to do with X-11, Spice Guest. | daemon | /usr/sbin/spice-vdagentd lsb |
udev | Start systemd-udevd. Hot plug events dispatcher. | daemon | |
ufw | Start ufw firewall. | daemon | |
unattended-upgrades | Unattended package upgrades shutdown. | daemon | |
uuidd | uuid generation daemon | daemon | |
whoopsie | Crash report submission daemon. | daemon | |
x11-common | Set up the X server and ICE socket directories. | run once |
from init to systemd
init - the original from SystemV Unix, serial-processing, slow boots
upstart - ubuntu-developed more efficient init
openrc - dependency-based, combines aspects of init and systemd
runit - cross-platform: BSD, MacOS, etc
systemd - multi-processing for fast boot, now ubiquitous
note: gentoo has its own init system
As of 2020, init has been replaced by systemd. See below.