Usuário de logoff com o systemd

5

Eu inicio meu gerenciador de janelas com unidades de serviço systemd (seguindo este tutorial ). Depois de efetuar login em tty1 , o seguinte será executado em .zlogin (estou usando o ZSH como um shell de login):

if [[ -z "$DISPLAY" && $(tty) = /dev/tty1 ]]; then
  nohup systemd --user > ~/.xlog 2>&1 &
  disown %2
  logout
fi

O Systemd inicia um servidor X, um gerenciador de janelas ... através de unidades de serviço.

O problema começa quando eu quero sair.
Devo simplesmente executar kill $MANAGERPID para matar o daemon systemd?
Parece muito mais limpo fazer um loginctl terminate-session $XDG_SESSION_ID , mas esse comando requer mais privilégios.

Veja a pergunta: Qual é a maneira preferida de sair da configuração descrita acima?

    
por mmh 12.04.2013 / 16:58

1 resposta

4

Isto é o que eu uso para sair do uso do xmonad (depois de usar wmctrl para fechar todas as janelas abertas):

session='loginctl session-status | head -n 1 | awk '{print $1}''
loginctl terminate-session $session

Não sei por que você precisa de mais privilégios para loginctl terminate-session - isso funciona para mim sem essa necessidade.

Observe também que existem maneiras diferentes de obter o ID da sessão. Neste exemplo, eu simplesmente o copio diretamente de loginctl . Há também $XDG_SESSION_ID (como você escreveu) e /proc/self/sessionid .

    
por 04.11.2016 / 16:10