システムスクリプトはシステムユーザーサービスを制御できますか?

システムスクリプトはシステムユーザーサービスを制御できますか?

systemd-suspend.service中断する前に(カーネルの中断を防ぐため)、ユーザーサービスを終了してシステムが再開された後に再起動する「システムスリープ」スクリプトを作成しようとしています。

問題は、システムスリープスクリプトがシステム権限で実行され、ユーザーサービスに対してこれを変更する方法がわからないことです。systemctl --user明らかに動作しません。

実行しようとしましたが、次のエラーが発生しますsu -c "systemctl --user stop <service>" <user>USER=<user> systemctl --user stop <service>

Failed to connect to bus: No such file or directory

マニュアルページでは、systemctlこの問題に関する多くのガイダンスを提供していません。

ベストアンサー1

ちょっとした悩みの終わりに、次の使い方を見つけましたsudo(または数字UIDを使用してユーザー名を解析する手間を省くため、suこれを使用しています)。sudo

XDG_RUNTIME_DIR=/run/user/<uid> sudo -E -u '#<uid>` systemctl --user status <service>.service

UIDが知られているかsystemctl status user.slice

おすすめ記事