
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
。