3.9 KiB
systemd
systemd is a big tool for a big system. Let's explore some of them from a perspective of a wannabe power user.
Among other things, it has the following list of features.
- systemd timers which can replace cron for task scheduling.
- systemd services along with the usual antics of a service manager such as managing dependencies and commands to run when killed.
- systemd transient units for quickly creating and scheduling one-off services.
- systemd unit templates is handy for managing units that have common structure, enabling to start them quickly and dynamically.
- systemd environment directives enable setting environment variables from a systemd-ful session.
- systemd-networkd is the network configuration manager in case you want to do Network configuration in Linux.
- systemd-boot is a bootloader mainly for UEFI-based systems.
- systemd-journald is the system logging service providing a structured way to manage your logs from different units.
- systemd unit hardening can help your services secure.
systemd at user-level
systemd has the ability to run at user-level empowering the user to manage their own system with their own settings. It immensely helps separating user-specific settings from the system-wide settings.
systemd looks for the units from certain paths.
You can look for them from the systemd.unit.5
manual page.
To run systemd as a user instance, simply add a --user
flag beforehand for systemctl
and other systemd binaries, if applicable.
# See how different the output when run at user- and system-level.
systemctl --user show-units
systemctl show-units
systemctl --user show-environment
systemctl show-environment
systemctl --user start $SERVICE
Navigating systemd documentation
Because of the wide scope of the tool, it is best to know where you can find certain information. Here's an exhaustive list of the locations.
- Most sensible distributions should include the manual pages from the software.
systemd has a lot of them from knowing systemd timers at
systemd.timers.5
, the unit formats and their locations atsystemd.unit.5
. systemd.directives.7
is an index of configuration directives including unit keys, environment variables, and command line options for systemd-related things. Also contains the related manual pages for a deeper references. 1- On a similar note,
systemd.index.7
is an alphabetical index of the important keywords found in systemd.
Extra information
systemd.mount
units require the filename to be the mountpoint. Though, it has to be converted to what systemd accepts (e.g.,systemd-escape --path $PATH
).- systemd has a few usual units such as
default.target
which is a target for the current environment of the user. It can be get withsystemctl get-default
command. More can be seen withsystemd.special.7
from the manual. - Not all units are equal as systemd treats some units specially.
You can see what these specific units are and what it does with
systemd.special.7
from the manual.
How did I pass a year without knowing this?