.bash_logout ou .zlogout não é analisado quando se inicia automaticamente o xserver após o login no console

1

Eu fiz uma linha:

[[ -z $DISPLAY && $XDG_VTNR -le 4 ]] && exec startx

(direto do Arch Wiki) no final de .xinitrc para iniciar o Xserver logo após o login no console.

Sempre que eu terminar a sessão, os daemons iniciados em .xinitrc não serão eliminados quando fizerem logoff, independentemente do uso de bash ou zsh .

Parece que .bash_logout/.zlogout não está sendo analisado, basicamente segurando:

kill -15 -1 &&

Alguém mais tendo esse problema e talvez uma solução?

    
por Mono 10.05.2015 / 18:07

1 resposta

0

O exec embutido substitui o shell pelo programa especificado. Depois desse ponto, o shell não está mais por perto para carregar .*logout .

Em qualquer caso, o shell que executa .xinitrc não é um shell de login, portanto, não executaria nenhum arquivo .*logout - mas esse shell não é onde você executaria startx , é um arquivo que é carregado de xinit que é executado por startx .

Se você deseja executar algo depois de sair da sessão gráfica, é necessário manter o shell em execução e especificar algo para executar após startx . Supondo que a linha exec startx esteja em .profile ou um arquivo semelhante executado pelo seu shell de login, você precisa manter o shell em execução enquanto a sessão X estiver ativa, então exit (para não seguir a sessão GUI um shell interativo).

if [[ -z $DISPLAY && $XDG_VTNR -le 4 ]]; then
  if startx; then
    # We just exited an X session.
    exit
    # If your login shell is bash, it runs ~/.logout at this point.
  else
    echo >&2 "The X session aborted with an error, dropping to a text shell"
  fi
fi
    
por 10.05.2015 / 20:43