通过 python 进行 systemctl

通过 python 进行 systemctl

有什么办法可以systemctl status通过python使用API​​吗?我正在寻找另一种在子进程中运行此命令的方法,因为我需要解析输出(如果将来输出发生变化,这可能会导致问题)。

答案1

您可以使用systemd 的 D-Bus API

import dbus

bus = dbus.SystemBus()
systemd = bus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1')
manager = dbus.Interface(systemd, 'org.freedesktop.systemd1.Manager')

然后manager.ListUnits()将返回所有配置的单元及其负载状态、活动状态和子状态。此方法有多种带有过滤器的变体。

相关内容