11.2. How does Systemd work?



Please disregard this page until it is complete and verified.

11.2.1. Introduction to Systemd

Systemd is a system management daemon designed exclusively for the Linux kernel API. In the Linux startup process, it is the first process to execute in user land; therefore, it is also the parent process of all child processes in user land.

Systemd's initialization instructions for each daemon are recorded in a declarative configuration file rather than a shell script. For inter-process communication, systemd makes Unix domain sockets and D-Bus available to the running daemons. Because systemd tracks processes using Linux cgroups instead of process identifiers (PIDs), daemons cannot "escape" systemd; not even by double-forking. Systemd is also capable of aggressive parallelization.

Among systemd's auxiliary features are a cron-like job scheduler called systemd Calendar Timers, and an event logging subsystem called journal. The system administrator may choose whether to log system events with systemd or syslog. Systemd's logfile is a binary file. The state of systemd itself can be preserved in a snapshot for future recall.

Systemd provides a replacement for sysvinit, pm-utils, inetd, acpid, syslog, watchdog, cron and atd, and obsoletes ConsoleKit.

11.2.2. Systemctl

systemctl is the main command used to introspect and control systemd.

List running units:

systemctl or systemctl list-units

List failed units:

systemctl --failed

List available unit files:

systemctl list-unit-files

Activate a unit immediately:

systemctl start unit

Stop a unit immediately:

systemctl stop unit

Restart a unit:

systemctl restart unit

Reload unit configuration:

systemctl reload unit

Show status of a unit:

systemctl status unit

Check if a unit is enabled or disabled:

systemctl is-enabled unit

Enable a unit to start during boot:

systemctl enable unit

Disable a unit to not start during boot:

systemctl disable unit

Reload systemd and scan for new or changed units:

systemctl daemon-reload

For more information regarding systemd, please refer to the systemd and related man-pages and Systemd at FedoraProject for documentation, examples, features, and other information.