systemd sd-bus APIを使用してrootとして実行するのではなく、プログラム内でユーザーのsystemdサービスファイルの状態を開始/停止/確認しようとしています。
状態を決定する例に進みます。コマンドラインでこの内容をテストしました。環境の準備に少し進歩がありました。
$ export XDG_RUNTIME_DIR=/run/user/$(id -u)
そして
$ export $(dbus-launch)
オンライン検索中にさまざまなソースから見つけました。特定のユーザーと話すとき:
$ busctl --user --verbose get-property \
org.freedesktop.systemd1 \
/org/freedesktop/systemd1/unit/myservice \
org.freedesktop.systemd1.Unit ActiveState
結果:
Process org.freedesktop.systemd1 exited with status 1
以前は「権利拒否」のようなものでした。ユーザーフラグなしでrootとして実行すると、目的の出力が提供されます。
私が逃した部分についてのヒントがある人はいますか?