퍼티가 종료될 때 .bash_logout이 실행되지 않습니다.

퍼티가 종료될 때 .bash_logout이 실행되지 않습니다.

일부 스크립트가 보관되어 있습니다 .bash_logout. 이 스크립트는 사용자가 Ctrl+ d또는 명령을 사용하여 로그아웃할 때 실행됩니다. exit누군가가 시스템에서 로그아웃하는 대신 Putty 애플리케이션을 직접 닫으면 .bash_logout실행되지 않습니다.

.bash_logout누군가 시스템에서 로그아웃하지 않고 퍼티 애플리케이션을 닫아도 퍼티 애플리케이션을 실행하는 방법을 알려주실 수 있나요 ?

답변1

.bashrc에 다음 기능과 트랩이 추가되었습니다. 트랩은 exit_session쉘이 신호를 수신할 때 이 기능을 트리거합니다.SIGHUP

exit_session() {
    . "$HOME/.bash_logout"
}
trap exit_session SIGHUP

답변2

할 수 없습니다. , 또는 +를 사용하여 .bash_logout콘텐츠를 실행하는 것은 명시적으로 셸을 종료하는 것을 의미합니다. 터미널 에뮬레이터를 닫으면 프로세스가 전송되고 bash가 실행되지 않습니다.exitlogoutCtrldSIGHUP~/.bash_logout

bash(1)맨페이지:

로그인 쉘이 종료되면 bash파일에서 명령을 읽고 ~/.bash_logout실행합니다 /etc/bash.bash_logout(파일이 있는 경우).

당신이 할 수 있는 최선은이 솔루션에 적응스크립트를 trap명령에 매핑합니다.

관련 정보