You can now design, deploy, harden, and troubleshoot systemd services. You understand the difference between Requires and Wants, why After and Requires are orthogonal, and why daemon-reload is never optional. These are not basics -- this is how professional Linux administrators operate.
1
systemd is PID 1. Unit files live in /lib/systemd/system/ (vendor) and /etc/systemd/system/ (admin). Always work in /etc/.
2
Three sections: [Unit] (metadata + dependencies), [Service] (process config), [Install] (boot integration). All three are required for a complete unit.
3
Requires = hard dependency (stop together). Wants = soft dependency. After = ordering only. You must specify both Requires and After to get both behavior and order.
4
After editing any unit file: daemon-reload then restart. Never skip daemon-reload. It costs 0.1 seconds and saves hours of confusion.
5
Use drop-in overrides (systemctl edit) to modify vendor units. Never edit files in /lib/systemd/system/ directly -- package updates will overwrite them.
6
journalctl -u unit -b -p err is your first debugging tool. systemd-analyze verify catches syntax errors before deployment.
7
Timers replace cron. They log to the journal, support dependencies, and can be inspected with systemctl list-timers. Migrate critical cron jobs.
8
PrivateTmp, ProtectSystem, NoNewPrivileges, and User= are the minimum security baseline for every new service unit. Run systemd-analyze security to verify.