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
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?
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
.