Existem arquivos carregados quando uma sessão de terminal é finalizada?

2

Eu sei que .profile / .bash_profile são carregados quando uma sessão de terminal é iniciada, seja por máquina local ou por SSH. Existem arquivos que são carregados / chamados quando a sessão termina?

Razão: Eu tenho o .profile definido para registrar a data e o endereço IP que se conecta a uma sessão de terminal para um usuário específico.

    
por Stephen S 12.12.2012 / 18:37

2 respostas

1

~/.bash_logout executado pelo bash quando o shell de login sai. mas você também pode obter detalhes de endereço IP e data usando lastlog , tentou isso?

~/.bash_logout , mas não será executado quando a sessão kill -9 $$ ou pode ser fechada com força

    
por 12.12.2012 / 19:55
0

Todos os shells têm uma maneira de executar algum código quando o shell sai: um trap. "Trap" é a palavra-chave do manipulador de sinal . Você pode definir uma armadilha para um sinal listando seu nome ( INT , HUP ,…) ou seu número, ou use o valor especial 0 ou EXIT para quando o shell sair normalmente (chegando ao fim) da entrada ou se exit foi chamado).

trap 'echo "$IP_ADDRESS logged out at $(date)" >>"$LOG_FILE"' EXIT HUP INT TERM

Você não pode interceptar kill -KILL ou falhas de energia.

Eu duvido que o que você está fazendo seja realmente útil. Esta informação já está registrada nos registros do sistema. É ainda mais confiável, porque você recebe uma entrada para kill -KILL também. O comando last mostra a data de início, a data de término e a origem (terminal ou endereço IP) de todas as sessões passadas e atuais desde a última rotação de log.

    
por 13.12.2012 / 01:04