
나는 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
.