Maneira simples de obter o status do serviço em formato legível por máquina:
systemctl show servicename --no-page
este comando faz a saída em key=value
format:
Type=notify
Restart=always
NotifyAccess=main
...
Se for necessário o formato json, você pode usar um script python simples (python 2 e 3 comatable) get_service_info.py
:
import os, sys, subprocess, json
key_value = subprocess.check_output(["systemctl", "show", sys.argv[1]], universal_newlines=True).split('\n')
json_dict = {}
for entry in key_value:
kv = entry.split("=", 1)
if len(kv) == 2:
json_dict[kv[0]] = kv[1]
json.dump(json_dict, sys.stdout)
Uso:
get_service_info.py servicename