Debugging System Services

This is a quick checklist for debugging services.

Systemd Units

List failed system services:

systemctl --failed

List failed user services:

systemctl --user --failed

Inspect one unit and its recent logs:

systemctl status waybar.service
systemctl --user status hypridle.service

Use status for a human-readable snapshot. It includes runtime state and recent journal lines, while show is better for scripts.1

Journal Logs

journalctl reads systemd's structured journal and supports filters such as the current boot, system or user journal, unit names, and grep-style message matches.2

Read the current boot only:

journalctl -b --no-pager
journalctl --user -b --no-pager

Filter to a unit:

journalctl -b -u display-manager.service --no-pager
journalctl --user -b --user-unit waybar.service --no-pager

Search messages for a word or regex:

journalctl -b -g 'hyprlock|loginctl|pam' --no-pager

Crashes

coredumpctl debug opens the matching core in a debugger, and info PID prints metadata plus stack trace details when they are available.3

List and inspect coredumps:

coredumpctl list
coredumpctl info PID
coredumpctl debug PID