The source fixture replaces failed main process A with main process B through restart policy. The restart count is distinct from application health. A and B are symbolic instance labels, not actual PID values.

systemd supervises process lifecycles

A service manager turns process startup, failure, and shutdown into observable state transitions. With systemd, a unit can name the foreground command, its restart policy, and its output destination. That removes the need for a shell loop that repeatedly launches a daemon without recording why it stopped. It does not prove that the running application can answer requests or that restarting repairs the underlying fault. ...

November 1, 2026 · 5 min · XB Field Notes
A timeline separates calendar scheduling, oneshot work and the fresh result. Timer firing alone does not establish success.

A maintenance timer should leave its last result visible

Scheduling is only half the job; operators also need to see when the task last ran and how it ended.

August 4, 2026 · 3 min · XB Field Notes
Five numbered starts lie within a 60-second bracket. The next attempt is blocked. The configured limit is a rate cap, not a lifetime retry budget.

Restart policies need a rate limit

Use an explicit service type, bounded restart behavior, and start-rate limits that leave evidence in the journal.

August 3, 2026 · 3 min · XB Field Notes
A service boundary blocks an unwanted write while a deliberate opening leads to writable state.

Harden a systemd service by testing its boundaries

Service hardening should turn a specific unwanted operation into a denied operation while preserving the work the application must perform. systemd supplies execution settings for filesystem views, namespaces, privileges, and other resources. They are separate controls with separate limits. Adding four familiar directives does not make every readable file, reachable process, inherited descriptor, or allowed system call disappear. ...

June 27, 2026 · 7 min · XB Field Notes