How does systemd manage services?
Assesses fundamental understanding of Linux Administration conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
systemd is the init system on most modern distributions. It starts services and manages dependencies, logging, and lifecycle.
- Units describe resources: .service, .socket, .timer, .target, and .mount.
- Unit files live in /etc/systemd/system for custom units, /usr/lib/systemd/system for packaged ones, or ~/.config/systemd/user for user units.
- systemctl controls units: start, stop, restart, reload, enable, disable, and status.
- Dependencies use After, Wants, and Requires. Targets group units for boot states.
- journald collects logs, and journalctl reads them.
[Unit]
Description=My API
After=network.target
[Service]
ExecStart=/usr/bin/myapi --port 8080
Restart=on-failure
User=app
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now myapi
systemctl status myapi
Run daemon-reload after editing unit files, and enable for boot persistence.
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.