"sudo stop"은 bash에 기록을 작성할 기회를 제공합니까?

"sudo stop"은 bash에 기록을 작성할 기회를 제공합니까?

자주 액세스하지 않는 컴퓨터에서 원격 작업을 수행하고 있는데 세션이 끝나면 sudo halt연결을 종료하고 컴퓨터를 종료하라는 명령을 실행합니다. 아쉽게도 지금은 세션에서 사용한 명령이 파일에 기록되었는지 알 수 없습니다 .bash_history. 이에 따르면 man halt실행 중인 모든 프로세스에 SIGTERM을 보낸 다음 SIGKILL을 보냅니다(프로세스가 시간 내에 종료되지 않는 경우에만 이 작업을 수행한다고 생각합니다).

중지 및 다시 시작 유틸리티는 파일 시스템 캐시를 디스크로 플러시하고 SIGTERM(뒤에 SIGKILL)을 실행 중인 모든 프로세스에 보낸 다음 각각 시스템을 중지하거나 다시 시작합니다.

먼저 bash에 SIGTERM을 보내 개인 컴퓨터에서 이것을 테스트했지만 bash가 응답하지 않는 것 같습니다. 그런 다음 SIGKILL을 보냈는데, 이로 인해 bash가 강제로 죽게 되었습니다. 그런 다음 .bash_history내 세션에 기록된 내용이 있는지 확인하기 위해 파일을 확인했지만 아무것도 기록되지 않았습니다. 제가 이해한 바에 따르면 SIGTERM은 프로세스에서 무시될 수 있고 이 신호에 응답하는 방법을 해석할 수 있으므로 필요한 경우 종료 프로세스를 수행할 수 있기 때문에 이는 의미가 있습니다. 그러나 다시 한 번 내 자신의 이해에 따르면 SIGKILL은 무시될 수 없으며 청소 또는 기타 죽음의 의식을 수행할 시간이 부여되지 않습니다.

이 테스트와 이 테스트에서 얻은 결론에 따르면 sudo halt원격 호스트에서 실행할 때 원격 세션이 저장될 가능성이 거의 없는 것으로 보입니다. 내가 잘못해서 원격 세션을 저장하게 할 수 있는 방법이 있나요 .bash_history?

답변1

  • SIGTERM에 의해 SSH가 종료되었습니다.
  • ssh는 의사 터미널(pty) 마스터 장치를 닫습니다.
  • pty는 SIGHUP을 bash로 보냅니다.
  • "SIGHUP을 받은 후 기본적으로 쉘이 종료됩니다."

https://stackoverflow.com/questions/5527405/where-is-sighup-from-sshd-forks-a-child-to-create-a-new-session-kill-this-chi

관련 정보