Botão de fechamento do terminal gnome do trap

Botão de fechamento do terminal gnome do trap

Posso interceptar o exitcomando de uma gnome-terminaljanela usando o comando Bash trap, mas só funciona se o usuário digitar exitna janela do terminal. Se o usuário clicar no botão Fechar, o manipulador de saída de trap não será executado.

Informações básicas: Gostaria de salvar o histórico do Bash em um arquivo de histórico personalizado quando o usuário clicar no botão Fechar. Eu usei export HISTFILE=/tmp/custom.hist, isso funciona em muitos casos (quando o usuário clica no botão Fechar no terminal gnome, o histórico é salvo no arquivo fornecido), mas em alguns casos o histórico não é salvo, então estou procurando alternativas para definindo a HISTFILEvariável de ambiente.

Responder1

Você quer capturar o SIGHUP;

De man 7 signal:

SIGHUP        1       Term    Hangup detected on controlling terminal or death of controlling process

Então, para capturar SIGHUP e EXIT:

trap 'export HISTFILE=/tmp/custom.hist' 1 EXIT

ou:

trap 'export HISTFILE=/tmp/custom.hist' SIGHUP EXIT

Responder2

Você pode salvar o arquivo de histórico após cada comando. Esse truque geralmente é usado para sincronizar o histórico de várias janelas, mas funcionaria no seu caso. Veja, por exemplo,esta resposta

informação relacionada