# Systemd 1. [TL;DR](#tldr) 1. [User services](#user-services) 1. [Failed to connect to bus: No medium found](#failed-to-connect-to-bus-no-medium-found) 1. [Keep past boots record (persistent logging)](#keep-past-boots-record-persistent-logging) 1. [Resolved](#resolved) 1. [Disable systemd-resolved](#disable-systemd-resolved) 1. [Ignore the DNS servers list given by the DHCP server](#ignore-the-dns-servers-list-given-by-the-dhcp-server) 1. [Manually set DNS servers](#manually-set-dns-servers) 1. [Further readings](#further-readings) 1. [Sources](#sources) ## TL;DR ```sh # 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' systemctl --user restart 'davmail.service' # Stop services. sudo systemctl stop 'cups.service' systemctl --user stop 'davmail.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' # Check a service is currently active. systemctl is-active 'wpa_supplicant.service' # Check a service is currently enabled. systemctl is-enabled 'wpa_supplicant.service' # Reboot the system. systemctl reboot # Suspend the system. # Saves the state to RAM only. systemctl suspend # Hibernate the system. # Saves the state to disk only. systemctl hibernate # Suspend the system in hybrid mode. # Saves the state to *both* RAM *and* disk. systemctl hybrid-sleep # Suspend the system, then hibernate after some time. # Saves the state to RAM initially, and if not interrupted within the specified # delay then wake up using an RTC alarm and hibernate. # Specify such delay in HibernateDelaySec in systemd-sleep.conf(5). systemctl suspend-then-hibernate # 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' # Filter logs by identifier (like a tag). journalctl -t 'CROND' # 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' # Show the current time settings. timedatectl # 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 settings. hostnamectl hostnamectl --pretty status hostnamectl --static status # Set hostnames. hostnamectl set-hostname 'static_hostname' --static hostnamectl set-hostname 'pretty_hostname' --pretty # Show the current DNS resolution settings. resolvectl status resolvectl status 'eth0' # Get an address-ip resolution and viceversa. resolvectl query 'www.0pointer.net' resolvectl query '85.214.157.71' # Retrieve PGP keys. resolvectl openpgp 'zbyszek@fedoraproject.org' # Restart the DNS resolver. sudo systemctl restart 'systemd-resolved.service' # See the status of the DNS resolver. systemd-resolve --status # Resolve hostnames or IP addresses. systemd-resolve 'google.com' systemd-resolve '8.8.8.8' # Set interface-specific DNS server address and search domain. sudo systemd-resolve -i 'wlp2s0' --set-dns '192.168.1.1' --set-domain 'lan' ``` ## User services User's service files should be placed into `~/.config/systemd/user`: ```sh cat > "${HOME}/.config/systemd/user/davmail.service" < [supervisor]: supervisor.md [changing dns with systemd-resolved]: https://notes.enovision.net/linux/changing-dns-with-resolve [how to disable systemd-resolved in ubuntu]: https://askubuntu.com/questions/907246/how-to-disable-systemd-resolved-in-ubuntu [how to set hostname using hostnamectl command?]: https://linuxhint.com/set-hostname-using-hostnamectl-command/ [how to set time, timezone and synchronize system clock using timedatectl command]: https://www.tecmint.com/set-time-timezone-and-synchronize-time-using-timedatectl-command/ [how to use journalctl to view and manipulate systemd logs]: https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs [suspend and hibernate]: https://wiki.archlinux.org/title/Power_management#Suspend_and_hibernate [what are the systemctl options to list all failed units?]: https://unix.stackexchange.com/questions/341060/what-are-the-systemctl-options-to-list-all-failed-units/341061#341061