원격 Linux 서버와의 SSH 세션 중에 인터넷 연결이 끊어졌다가 짧은 시간 내에 다시 연결되면 SSH 세션이 여전히 존재한다는 것을 발견했습니다.
서버에서 프로그램을 실행하고 해당 프로그램의 stdout 및 stderr 출력을 파일로 리디렉션하면 일시적인 인터넷 손실로 인해 프로그램이 실행되지 않는 것 같습니다.
하지만 연결을 끊으면 파일 내용에 영향을 미치나요? 나는 그렇지 않다고 생각했다. 인터넷 연결이 끊어지지 않고 프로그램을 다시 실행했을 때 파일의 일부 내용이 반복되지 않는 것을 발견했는데 인터넷 연결이 끊어진 것이 원인인지는 확실하지 않습니다.
답변1
세션이 활성 상태로 유지되면 활성 상태로 유지됩니다. 아무런 트릭도 없고 버퍼와 TCP만 있으면 됩니다.
따라서 SSH 세션에 대한 연결이 끊어졌다가 "불량한" 인터넷 연결로 인해 복원되는 경우 해당 세션에서 실행 중인 애플리케이션은 이를 전혀 알 수 없습니다. 회의는 계속됩니다.
콘솔을 보는 동안 모니터를 분리하는 것과 마찬가지로 해당 콘솔에서 실행 중인 애플리케이션에 영향을 주어서는 안 됩니다.
답변2
하지만 연결을 끊으면 파일 내용에 영향을 미치나요? 나는 그렇지 않다고 생각했다.
연결이 끊어지면 세션이 종료되고 셸과 명령이 종료됩니다. 연결이 끊어진 경우에도 원격 서버에서 명령을 실행하려면 연결이 좋지 않은 nohup
명령, screen
멀티플렉서 tmux
또는 셸을 찾아야 합니다.mosh
답변3
연결이 끊어졌을 때 프로그램이 계속 실행되도록 하려면 다음을 사용하세요.화면. 그런 다음 의도적으로 SSH 연결을 끊고 몇 시간 또는 며칠 후에 다시 돌아와서 다시 연결할 수 있습니다(물론 컴퓨터가 재부팅되지 않거나 프로그램을 종료하기 위한 다른 조치가 없는 한).