Pythonによるsystemctl

Pythonによるsystemctl

systemctl statusPythonで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()設定されたすべてのデバイスがロードステータス、アクティブステータス、およびサブステータスとともに返されます。フィルタを使用するこの方法にはいくつかのバリエーションがあります。

関連情報