![SSH가 종료될 때 실행 중인 현재 프로그램의 정의된 동작이 있습니까?](https://rvso.com/image/170678/SSH%EA%B0%80%20%EC%A2%85%EB%A3%8C%EB%90%A0%20%EB%95%8C%20%EC%8B%A4%ED%96%89%20%EC%A4%91%EC%9D%B8%20%ED%98%84%EC%9E%AC%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%98%20%EC%A0%95%EC%9D%98%EB%90%9C%20%EB%8F%99%EC%9E%91%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
과거에 rails s
SSH로 연결한 Bash에서 (를 사용하여) Ruby on Rails 서버를 실행했는데 인터넷 연결이 중단된 경우라고 생각합니다.
- Ruby on Rails 서버가 중지됩니다.
- Ruby on Rails 서버는 실제로 계속 실행 중이었고(VPN 연결이 끊어졌기 때문인 것 같습니다)
ps ux
관련 프로세스를 하나씩 종료해야 했습니다... 조금 지저분했습니다.
(1) 또는 (2)가 발생할 수 있습니까? 잘 정의된 동작이 있나요? 예를 들어, VPN이 아니지만 ssh 연결이 끊긴 경우 (1)이 되고, VPN인 경우 (1) 또는 (2) 중 하나가 됩니다.
추신: Rails 서버를 실행해야 하는 경우 사용하도록 전환했습니다 tmux
. 그러면 다시 돌아와서 tmux a -t foo
연결할 수 있고 필요한 경우 CTRL-C를 누를 수 있습니다.
답변1
예, 쉘과 관련된 프로세스는 신호를 수신합니다. 그런 식으로 프로그래밍하면 무시할 수 있습니다. 에 대해서는 남자를 참조하세요 nohup
.
예를 들어 nohup command
명령을 실행하면 hup이 발생하지 않습니다. 그러나 stdin, stdout, stderr도 리디렉션되었습니다.
또한 참조하십시오 disown
.&
완전히 연결을 끊으려면nohup > /dev/null command & disown