に名前付きユーザーレベルのsystemdサービスユニットがある場合は、ユーザーalice
をアリスに切り替えて、そのスイッチを使用してユニットの状態を確認できます。foo.service
/home/alice/.config/systemd/user/foo.service
--user
root@srv0:~# su - alice
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
alice@srv0:~$ systemctl status foo.service --user
● foo.service - foo
Loaded: loaded (/home/alice/.config/systemd/user/foo.service; disabled; v
Active: active (running) since Sat 2019-03-23 04:11:03 UTC; 2min 6s ago
Main PID: 2246 (python3)
CGroup: /user.slice/user-20021.slice/[email protected]/foo.service
└─2246 python3 /home/alice/devapp foo bar baz
ユーザーを切り替えずにデバイスの状態を確認(およびデバイスの動作)を実行できますか?
試してみましたが動作sudo
しません。
root@srv0:~# sudo -l -u alice systemctl status --user foo
/bin/systemctl status --user foo
root@srv0:~# sudo -u alice systemctl status --user foo
Failed to connect to bus: No such file or directory
user@UID
私も機能しない構文を試しました。
root@srv0:~# systemctl status user@1001:foo
● user@1001:foo.service - User Manager for UID 1001:foo
Loaded: loaded (/lib/systemd/system/[email protected]; static; vendor preset: enabled)
Active: inactive (dead)
答え1
この議論によると https://lists.freedesktop.org/archives/systemd-devel/2014-March/018227.html 次のように動作します。
env XDG_RUNTIME_DIR=/run/user/1000 sudo --preserve-env=XDG_RUNTIME_DIR -u alice systemctl status --user foo
何とかXDG_RUNTIME_DIRを取得する必要があります。