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.

Steps to check a Linux service status with systemctl:

  1. Locate the service unit name.
    $ systemctl list-unit-files --type=service | grep -i -- example
    example.service                              enabled         enabled
  2. Check the service status summary and recent log lines.
    $ 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\"
  3. Return the active state in a single word for scripts.
    $ systemctl is-active ssh.service
    active

    The command exit status is 0 when the unit is active.

  4. Confirm whether the service is enabled at boot.
    $ systemctl is-enabled ssh.service
    enabled

    Units may also report disabled, static, or masked.