Запуск службы systemd через python
есть ли способ запустить / перезапустить службу systemd через python?
Я знаю, что могу сделать системный вызов, но тогда я также могу написать это в сценарии оболочки...
from subprocess import call
call(["systemctl", "restart service"])
Я слышал, что systemd имеет некоторые привязки python, но, насколько я видел, они охватывают только журнал
1 ответов
вы можете использовать systemd это DBus API вызов RestartUnit
метод Manager
(нужны достаточные привилегии, иначе это не сработает)
import dbus
sysbus = dbus.SystemBus()
systemd1 = sysbus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1')
manager = dbus.Interface(systemd1, 'org.freedesktop.systemd1.Manager')
job = manager.RestartUnit('sshd.service', 'fail')