.bash_logout não está sendo executado na saída do putty

3

Eu tenho algum script no arquivo .bash_logout . Esse script está sendo executado quando um usuário está efetuando logout usando Ctrl + d ou usando o comando exit . Se alguém fechar diretamente o aplicativo putty em vez de efetuar logout do sistema, então .bash_logout não está sendo executado.

Alguém pode me ajudar como executar .bash_logout mesmo se alguém fechar o aplicativo de putty sem sair do sistema?

    
por Sourav 14.06.2017 / 21:01

2 respostas

2

Adicionada abaixo a função e uma armadilha no .bashrc. A armadilha acionará a função exit_session quando o shell receber SIGHUP signal.

exit_session() {
    . "$HOME/.bash_logout"
}
trap exit_session SIGHUP
    
por 14.06.2017 / 23:55
3

Não é possível fazer. O conteúdo de .bash_logout será executado somente com exit , logout ou Ctrl + d , significa sair explicitamente do shell. Se você fechar o emulador de terminal, os processos serão enviados SIGHUP e o bash não será executado em ~/.bash_logout .

bash(1) manpage:

When a login shell exits, bash reads and executes commands from the files ~/.bash_logout and /etc/bash.bash_logout, if the files exists.

O melhor que você pode fazer é adaptar essa solução para mapear um script com o comando trap .

    
por 14.06.2017 / 21:18

Tags