SSH가 종료될 때 현재 실행 중인 프로그램에 대해 정의된 동작이 있습니까?

SSH가 종료될 때 현재 실행 중인 프로그램에 대해 정의된 동작이 있습니까?

과거에 rails sSSH를 통해 (사용하여) 액세스한 Bash에서 Ruby on Rails 서버를 실행하고 있었는데 인터넷 연결이 끊어졌다면,

  1. Ruby on Rails 서버가 중지됩니다
  2. Ruby on Rails 서버는 실제로 계속 실행되고 있으며(VPN 연결 끊김으로 인한 것 같습니다) ps ux모든 관련 프로세스를 하나씩 종료해야 합니다. 약간 혼란스럽습니다.

(1) 또는 (2)가 발생합니까? 명확하게 정의된 동작이 있습니까? 예를 들어 VPN이 아닌데 ssh 연결이 끊어지면 (1)이 되는데, VPN이라면 (1)인가요, (2)인가요?

tmux추신: Rails 서버를 실행해야 하는 경우 이를 사용 하도록 전환하여 tmux a -t foo다시 연결하고 필요한 경우 CTRL-C를 누를 수 있습니다.

답변1

예, 쉘과 관련된 프로세스는 hup 신호를 받습니다. 이런 식으로 프로그래밍하면 무시할 수 있습니다. 사람을 보기 위해 nohup.

예를 들어 nohup command명령을 실행하면 hup이 발생하지 않습니다. 그리고 stdin, stdout 및 stderr 리디렉션이 있습니다.

다음도 참조하세요 disown.&

완전히 연결 해제nohup > /dev/null command & disown

관련 정보