Starting a stopped service with systemctl brings a daemon online immediately instead of waiting for the next boot or for some other unit to activate it. That matters after package installation, after maintenance, or whenever an application dependency stays unavailable because its service is not running.
The systemctl start subcommand asks systemd to activate the target unit and track the result through the unit's runtime state. That runtime state is separate from the unit-file state, so a service can become active now while remaining disabled at boot until systemctl enable creates its install links.
Examples below use queue-worker.service as a stand-in unit name to keep the flow readable; replace it with the real service on the host. Add sudo for system services, use systemctl --user start for per-user units, run systemctl daemon-reload first when a unit file under /etc/systemd/system was just created or edited, and remember that masked units, units with RefuseManualStart=yes, and units gated by Condition…= checks may not start like a normal long-running daemon.
Add sudo to the service-control commands below unless the target is a per-user unit managed with systemctl --user.
$ systemctl list-unit-files --type=service | grep queue-worker
Replace queue-worker with the actual service name, such as nginx, ssh, sshd, docker, or postgresql, and prefer the full unit name including .service in later commands. Use an explicit unit name instead of relying on systemctl start glob patterns, because current upstream systemd documentation notes that such patterns only expand against units already loaded in memory.
$ sudo systemctl daemon-reload
This rereads unit files from disk so a new or changed definition under /etc/systemd/system can be started correctly.
$ systemctl show -p LoadState -p ActiveState -p SubState -p UnitFileState queue-worker.service LoadState=loaded ActiveState=inactive SubState=dead UnitFileState=disabled
LoadState=loaded confirms that systemd can read the unit file, while the inactive/dead state shows the service is not running yet.
$ sudo systemctl start queue-worker.service
Current upstream systemctl behavior waits for the unit start-up to complete unless --no-block is used, and starting an already active unit normally leaves the running process in place instead of restarting it.
$ systemctl show -p ActiveState -p SubState -p UnitFileState queue-worker.service ActiveState=active SubState=running UnitFileState=disabled
start changes the runtime state only, so the unit can be active now while still printing disabled until it is explicitly enabled for boot.
$ systemctl status --no-pager --full queue-worker.service
* queue-worker.service - Queue Worker Service
Loaded: loaded (/etc/systemd/system/queue-worker.service; disabled; preset: enabled)
Active: active (running) since Mon 2026-04-13 12:55:17 UTC; 228ms ago
Main PID: 101 (queue-worker.sh)
##### snipped #####
A Type=oneshot unit with RemainAfterExit=yes can legitimately show active (exited) after a successful start, while oneshot units without RemainAfterExit can return to dead immediately after the start action finishes.
$ sudo journalctl -u queue-worker.service -n 6 --no-pager Apr 13 12:55:17 server systemd[1]: Started queue-worker.service - Queue Worker Service.
A start blocked by unmet Condition…= checks can be skipped without moving the unit into failed, so read both the status view and the journal before retrying the command.