A manual stop never triggers a restart. oneshot cannot use Always. Rate limits can stop a failing restart loop; inspect logs before reset-failed.
Timeouts, dependencies & environment
For oneshot, the start timeout covers the entire task. For exec/simple it does not wait for application readiness. Stop timeout limits graceful shutdown before forced termination.
Space-separated literal unit names in the same manager. After orders units only if both start; it does not start them. Wants/Requires pull units in but do not order them. Pair with After when needed. Failure of a required dependency prevents startup when also ordered After it.
System services may use Wants + After = network-online.target if truly needed. It requires a configured wait-online provider, is only a boot-time synchronization point, and guarantees neither internet/DNS nor ongoing connectivity. User units cannot order after system-manager targets.