Debugging a systemd service without guessing
A repeatable path from failed unit to useful evidence using systemctl, journalctl, exit status, and the unit's real runtime context.
// linux · infrastructure · reliability
I write about Linux systems, automation, observability, and the implementation details that make infrastructure easier to understand and operate.
$ systemctl --failed UNIT LOAD ACTIVE SUB DESCRIPTION0 loaded units listed. $ ls -t ~/writing | head -3arch-metapackages-project-dependencies.mdbsd-family-differences.mddebugging-systemd-services.md $ cat /etc/motdMake it observable.Make it repeatable.Then make it boring.
New here?
A few routes through the articles and notes, depending on what brought you here.
See the reading paths →Featured writing
Practical articles on Linux, operations, automation, and the failure modes that only appear once software meets a real machine.
A repeatable path from failed unit to useful evidence using systemctl, journalctl, exit status, and the unit's real runtime context.
Use small Arch metapackages to declare a project's native development dependencies, so pacman can safely remove what is no longer needed.
Same 4.4BSD skeleton, four different answers to what to optimise: kernel locking, filesystems, security models, architecture coverage, and how each project runs Linux binaries.
About
I’m Joshua Rosato, a Linux sysadmin and engineer at 20i, a web hosting company in the UK. This site is my place for technical notes, longer explanations, and useful fragments worth keeping outside a shell history.
The recurring themes are Linux internals, production reliability, automation, networking, observability, and maintainable infrastructure.
joshua@rosato:~$ fastfetch
joshua@rosato