← All writing
Why I reach for systemd before reaching for a framework
There’s a reflex in ops to install a tool for every job. Need a process to stay alive? Pull in a supervisor. Need something on a schedule? Add a job runner. Most of the time, the box already ships the answer.
The boring features that win
A plain unit file gives you restart policies, resource limits, dependency ordering, and structured logs through journalctl — for free, on every Linux box, with nothing extra to deploy.
[Service]
ExecStart=/usr/local/bin/myservice
Restart=on-failure
RestartSec=2
MemoryMax=512M
That’s a supervised, memory-capped, auto-restarting service in four lines. No agent, no dashboard, no new failure mode.
When I do reach for more
Frameworks earn their place when coordination crosses machines. On a single host, though, fighting the init system usually means I’ve added complexity I’ll have to debug later.