사용자 수준 시스템 장치의 상태를 확인하는 방법

사용자 수준 시스템 장치의 상태를 확인하는 방법

에 이름이 지정된 사용자 수준 systemd 서비스 단위가 있는 경우 alice사용자를 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을 얻어야 합니다.

관련 정보