나는 systemd 서비스 유닛을 사용하여 창 관리자를 시작합니다(다음과 같이)이 튜토리얼). 로그인한 후 tty1
다음 명령을 실행합니다 .zlogin
(ZSH를 로그인 셸로 사용하고 있습니다).
if [[ -z "$DISPLAY" && $(tty) = /dev/tty1 ]]; then
nohup systemd --user > ~/.xlog 2>&1 &
disown %2
logout
fi
Systemd는 서비스 유닛을 통해 X 서버, 창 관리자를 시작합니다.
문제는 로그아웃하려고 할 때 시작됩니다.
단순히 kill $MANAGERPID
systemd 데몬을 종료하기 위해 실행해야 합니까?
실행하는 것이 더 깔끔해 보이지만 loginctl terminate-session $XDG_SESSION_ID
이 명령에는 더 많은 권한이 필요합니다.
문제는 위 설정을 사용하여 로그아웃하는 데 선호되는 방법은 무엇입니까?
답변1
이것은 xmonad에서 로그아웃하는 데 사용하는 방법입니다( wmctrl
열린 창을 모두 닫은 후).
session=`loginctl session-status | head -n 1 | awk '{print $1}'`
loginctl terminate-session $session
왜 더 많은 권한이 필요한지 모르겠습니다 loginctl terminate-session
. 제 생각에는 그런 것이 필요하지 않은 것 같습니다.
또한 세션 ID를 얻는 방법에는 여러 가지가 있습니다. 이 예에서는 loginctl
그 자체에서 직접 가져옵니다. 그리고 $XDG_SESSION_ID
(당신이 쓴 대로) 그리고 /proc/self/sessionid
.