Я пытаюсь получить статус нескольких служб systemd
в Python, но продолжаю получать сообщение об ошибке FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'systemctl show -p ActiveState --value abc'
Я запускаю Ubuntu 20.04 как пользователь пользователь
. Файл abc.service
находится в / etc / systemd / system /
, подробности ниже:
-rw-rw-r-- 1 root root 1542 Aug 5 17:31 abc.service
Сценарий
import subprocess
status = subprocess.check_output("systemctl show -p ActiveState --value abc")
print(status)
Однако, если я запустил systemctl
, я могу получить статус активен
. Я пробовал использовать в скрипте sudo
и получаю ту же ошибку.
В связи с этим, я подумал, что в конечном итоге мне придется запустить команду, используя sudo
, но на самом деле я запускаю команду как часть своего тега Airflow (то есть не как отдельный сценарий, где я может делать sudo python3 myscript.py
). Есть ли способ сделать это?
Я проявил небрежность и не включил shell = True
в свой подпроцесс
. Как только я его добавил, он работает успешно.
status = subprocess.check_output("systemctl show -p ActiveState --value abc", shell=True)