사용자 유닛(슬라이스)을 생성하고 시작했습니다. 그리고:
cytrinox@pollux$ systemctl status --user --full firefox-limits.slice
● firefox-limits.slice - Firefox Slice
Loaded: loaded (/home/cytrinox/.config/systemd/user/firefox-limits.slice; static; vendor preset: enabled)
Active: active since Sun 2018-11-25 00:09:14 CET; 37min ago
CGroup: /user.slice/user-1000.slice/[email protected]/firefox.slice/firefox-limits.slice
└─run-r791a1fc1147748059accf82ecded4c56.scope
├─5291 /home/cytrinox/bin/Firefox/firefox
├─5451 /home/cytrinox/bin/Firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 452779 -schedulerPre
├─5500 /home/cytrinox/bin/Firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 1 -prefMapSize 452779 -schedulerPre
├─5517 /home/cytrinox/bin/Firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLen 1 -prefMapSize 452779 -schedulerPre
├─5539 /home/cytrinox/bin/Firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 1 -prefMapSize 452779 -schedulerPre
└─5562 /home/cytrinox/bin/Firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 1 -prefMapSize 452779 -schedulerPre
Nov 25 00:09:14 pollux systemd[858]: Created slice Firefox Slice.
현재 상태를 확인할 수 있어요.
하지만 루트로서 이 사용자 유닛의 상태를 어떻게 얻을 수 있습니까?
root@pollux:/etc/systemd/system# systemctl status --full firefox-limits.slice
● firefox-limits.slice
Loaded: loaded
Active: inactive (dead)
답변1
불행하게도 아니요, 루트로 실행할 때는 systemd 장치 관리자에서 실행되는 장치에 액세스할 수 없습니다.
이것은거의이는 환경 변수를 가리키도록 설정하는 systemctl --user status
동안 루트로 실행하여 수행할 수 있습니다 (참조:XDG_RUNTIME_DIR
/run/user/<uid>
관련 코드는bus_connect_user_systemd()
), 불행히도 이것만으로는 충분하지 않습니다.
# XDG_RUNTIME_DIR=/run/user/1000 systemctl --user status
Failed to connect to bus: Operation not permitted
문제는 사용자 관리자에 연결한 후 systemd가 실행 중인 uid가 systemctl
관리자 소켓을 소유한 uid와 일치하는지 확인한다는 것입니다(참조:관련 코드는bus_check_peercred()
).
따라서 가장 좋은 방법은 su
장치 상태를 확인하기 위해 사용자가 되는 것입니다. 또한 를 사용할 때에도 su
이를 설정해야 합니다 XDG_RUNTIME_DIR
. 그렇지 않으면 systemctl
관리자 소켓을 찾을 수 없습니다.
# su cytrinox -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user status'
systemctl status
(또는 Firefox의 슬라이싱 단위에 적합한 명령을 원합니다...)