mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-09 05:44:23 +00:00
5.6 KiB
5.6 KiB
Systemd
TL;DR
# 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'
# 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'
# 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 'static_hostname' --static
hostnamectl set-hostname 'pretty_hostname' --pretty
User services
User's service files should be placed into ~/.config/systemd/user:
cat > "${HOME}/.config/systemd/user/davmail.service" <<EOF
[Unit]
Description=Davmail
[Service]
ExecStart=/usr/bin/davmail -notray
[Install]
WantedBy=default.target
EOF
and can be acted upon as normal using systemctl's --user switch
systemctl --user enable --now 'davmail.service'
systemctl --user status 'davmail.service'
Keep past boots record (persistent logging)
Edit the journal configuration file and set the following option:
# file /etc/systemd/journald.conf
[Journal]
Storage=persistent
Resolved
Disable systemd-resolved
-
disable and stop the systemd-resolved service:
sudo systemctl disable --now 'systemd-resolved.service' -
set NetworkManager to use the default DNS resolution.
# file /etc/NetworkManager/NetworkManager.conf [main] dns=default -
delete
/etc/resolv.conf:sudo unlink '/etc/resolv.conf' -
restart NetworkManager
sudo service 'network-manager' restart
Sources
- How to disable systemd-resolved in Ubuntu
- What are the systemctl options to list all failed units?
- How To Use Journalctl to View and Manipulate Systemd Logs
- How to Set Time, Timezone and Synchronize System Clock Using timedatectl Command
- How to Set Hostname Using Hostnamectl Command?
- Suspend and hibernate