Checking Linux service status confirms whether a daemon is running, crashed, or intentionally stopped, which is a fast way to separate “the app is down” from “the app is unreachable.” A quick status check can also reveal obvious failure causes (bad config, missing files, permission errors) before deeper log analysis begins.
Most modern Linux distributions use systemd to start and supervise background services, storing their state as units such as nginx.service or ssh.service. The systemctl command queries that state and can display the unit’s load status, active state, recent exit status, and a short tail of the unit’s journal output in a single view.
Status checks depend on the correct unit name and unit type (for example, .service vs .socket), and templated units may include an instance suffix like @instance. Some systems restrict access to the journal for unprivileged users, so sudo may be required to see the recent log lines shown by systemctl status.
$ systemctl list-unit-files --type=service | grep -i -- example example.service enabled enabled
$ sudo systemctl status --no-pager --full ssh.service | head -n 14
* ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Sun 2026-01-11 21:17:34 UTC; 4min 51s ago
TriggeredBy: * ssh.socket
Docs: man:sshd(8)
man:sshd_config(5)
Process: 1349 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 1351 (sshd)
Tasks: 1 (limit: 14999)
Memory: 1.5M (peak: 19.7M)
CPU: 13ms
CGroup: /system.slice/ssh.service
`-1351 \"sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups\"
$ systemctl is-active ssh.service active
The command exit status is 0 when the unit is active.
$ systemctl is-enabled ssh.service enabled
Units may also report disabled, static, or masked.