systemd¶
"systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux control groups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit." - http://www.freedesktop.org/wiki/Software/systemd/
Links¶
- https://www.freedesktop.org/wiki/Software/systemd/TipsAndTricks: Tips and tricks
- https://man7.org/linux/man-pages/man5/systemd.resource-control.5.html: Man page for control groups
- https://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions: FAQ
- https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet: sysvinit to chkconfig
- https://wiki.ubuntu.com/SystemdForUpstartUsers: systemd for upstart users
- https://github.com/joehillen/sysz: fzf interface for systemd
Tips¶
Init file locations¶
Show the full systemd journal¶
The systemd journal is syslog and more.
Show logs for the last 15 minutes¶
Show logs for one service¶
Find your service with systemctl list-units
Show only logs that match a certain pattern¶
"PERL-compatible regular expressions are used. … If the pattern is all lowercase, matching is case insensitive. Otherwise, matching is case sensitive. This can be overridden with the --case-sensitive option" - man journalctl
Show the nginx journal for today¶
The -u here is "unit", not "user".
List journals by boot¶
The above command produces the following style of output:
-5 e6fcef265a164688b5f9aad999a9b1d2 Mon 2019-09-09 08:55:47 PDT—Tue 2019-09-17 17:41:25 PDT
-4 1e402042ad0a48bebe17298fd80dfb66 Tue 2019-09-17 17:42:06 PDT—Tue 2019-09-17 18:26:28 PDT
-3 1b36653fa7b64b1a808f10a894a0e303 Tue 2019-09-17 18:27:11 PDT—Sun 2019-09-22 13:34:59 PDT
-2 be854ba422934cf2a9e7952dc052461a Sun 2019-09-22 16:23:43 PDT—Mon 2019-09-30 07:55:08 PDT
-1 0454f1208e5e49c59fabf95cf4f68346 Mon 2019-09-30 07:55:51 PDT—Fri 2019-10-04 08:54:38 PDT
0 f8c09c85ed9f4976987121a345b6f446 Fri 2019-10-04 08:55:22 PDT—Wed 2019-10-09 15:34:01 PDT
Show journal for previous boot¶
Using the info from the previous --list-boots example, we can view the system log for the previous boot. This gives all system logs from the time the system booted to the time it shut down.
Show timers¶
"A unit configuration file whose name ends in ".timer" encodes information about a timer controlled and supervised by systemd, for timer-based activation." - man systemd.timer
Show units¶
Units are things that are handled by systemd, including services.
Show dependencies¶
This works on any .target or .service
Enable a service¶
This behavior replaces chkconfig
Check the status of a service and show 20 lines¶
Per-user services¶
https://wiki.archlinux.org/index.php/Systemd/User
/usr/lib/systemd/user/ # where services provided by installed packages go.
/etc/systemd/user/ # where system-wide user services are placed by the system administrator.
~/.config/systemd/user/ # where the user puts its own services.