From 47704f9952c61519067ac49e081337e5000d1824 Mon Sep 17 00:00:00 2001 From: Michele Cereda Date: Thu, 12 May 2022 23:19:21 +0200 Subject: [PATCH] Added systemd's notes to the knowledge base --- knowledge base/systemd.md | 197 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 knowledge base/systemd.md diff --git a/knowledge base/systemd.md b/knowledge base/systemd.md new file mode 100644 index 0000000..dbda7c5 --- /dev/null +++ b/knowledge base/systemd.md @@ -0,0 +1,197 @@ +# Systemd + +## TL;DR + +```shell +# List all available units. +systemctl list-unit-files + +# List failed units only. +systemctl list-units --state=failed + +# Start services. +sudo systemctl start adb.service +systemctl --user start keybase.service + +# Restart services. +sudo systemctl restart bluetooth.service + +# Stop services. +sudo systemctl stop cups.service + +# Enable services on boot. +sudo systemctl enable sshd.service +sudo systemctl enable --now docker.service +systemctl --user enable --now davmail.service + +# Disable services from boot. +sudo systemctl disable clamav-freshclam.service +sudo systemctl disable --now gdm.service +systemctl --user disable --now davmail.service + +# Show log entries. +journalctl +journalctl -f +journalctl -n 20 +journalctl -o json-pretty +journalctl --no-pager +journalctl --utc + +# Show what boots the system has logs about. +journalctl --list-boots + +# Display logs from specific boots only. +# Persistent logging needs to be enabled. +journalctl -b +journalctl -b -3 + +# Display logs in a specific time window +journalctl --since yesterday +journalctl --since "2015-01-10 17:15:00" +journalctl --since 09:00 --until "1 hour ago" +journalctl --since "2015-01-10" --until "2015-01-11 03:00" + +# Filter logs by unit. +journalctl -u nginx.service +journalctl -u nginx.service -u php-fpm.service --since today + +# Filter logs by process, user id or group id. +journalctl _PID=8088 +journalctl _UID=33 --since today +journalctl -F _GID + +# Filter logs by path. +journalctl /usr/bin/bash + +# Display kernel logs only. +# Works like `dmesg`. +journalctl -k +journalctl -k -b -5 + +# Filter logs by priority. +journalctl -p err -b + +# Truncate the output. +journalctl --no-full + +# Print everything. +journalctl -a + +# Show current logs disk usage. +journalctl --disk-usage + +# Delete old logs. +sudo journalctl --vacuum-size=1G +sudo journalctl --vacuum-time=1years + +# List available timezones. +timedatectl list-timezones + +# Set timezones. +sudo timedatectl set-timezone UTC +sudo timedatectl set-timezone Europe/Dublin + +# Set the time. +sudo timedatectl set-time 15:58:30 +sudo timedatectl set-time '2015-11-20 16:14:50' + +# Set the hardware clock to UTC. +timedatectl set-local-rtc 0 + +# Set the hardware clock to local timezone. +timedatectl set-local-rtc 1 + +# Set automatic time sync. +sudo timedatectl set-ntp true +sudo timedatectl set-ntp false + +# Check the time and timezones state. +timedatectl status + +# Show the current hostname state. +hostnamectl +hostnamectl --pretty status +hostnamectl --static status + +# Set hostnames. +hostnamectl set-hostname staticky --static +hostnamectl set-hostname prettiky --pretty +``` + +## User services + +User's service files should be placed into `~/.config/systemd/user`: + +```shell +cat > "${HOME}/.config/systemd/user/davmail.service" <