root以外のユーザーとしてBusctlを使用する

root以外のユーザーとしてBusctlを使用する

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として実行すると、目的の出力が提供されます。

私が逃した部分についてのヒントがある人はいますか?

ベストアンサー1

おすすめ記事