'systemctl short status output format for specific service

is it possible to get status for specific systemd service

$ systemctl -a | grep sshd.service
  sshd.service              loaded    active   running   OpenSSH server daemon
$

but without grep, only with systemctl ? Something like systemctl SHOW_STATUS_LIKE_A_OPTION sshd.service

systemctl status - too long and multiline...



Solution 1:[1]

You can try systemctl is-active sshd.service, systemctl is-enabled sshd.service and systemctl is-failed sshd.service.

Solution 2:[2]

Based on Samuel's answer, I offer a simple shell function for .bashrc, including cheeky use of grep for colorization:

function status () {
    for name in $@; do \
      echo ${name} $(systemctl is-active ${name}) $(systemctl is-enabled ${name}); \
      done | column -t | grep --color=always '\(disabled\|inactive\|$\)'
}

Invocation:

> status ssh ntp snapd
ssh    active    enabled   
ntp    active    enabled   
snapd  inactive  disabled  

Note that is-active will print inactive for non-existent services, while is-enabled will print a warning to stderr.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Samuel Verschelde
Solution 2 Ian Mackinnon