#!/usr/bin/python3 # vim: ft=python import subprocess import json import re def main(): ret = {"data": []} output_list = subprocess.run(""" systemctl list-unit-files | grep -E '\.service\s+(generated|enabled)' | awk -F'.service ' '{print $1}' """,shell=True,capture_output=True).stdout for line in output_list.splitlines(): output_is_enabled = subprocess.run(f""" systemctl is-enabled {line.decode("utf-8")} """,shell=True,capture_output=True).stdout.decode('utf-8') if re.match("^enabled", output_is_enabled) is not None: ret["data"].append({"{#SERVICE}": line.decode("utf-8")}) return json.dumps(ret) if __name__ == "__main__": res = main() print(res)