원격 호스트의 연결이 끊어지면 원격으로 실행 중인 프로세스는 어떻게 되나요?

원격 호스트의 연결이 끊어지면 원격으로 실행 중인 프로세스는 어떻게 되나요?

원격 호스트에 SSH를 통해 여러 프로세스를 시작하고 프로세스가 종료되기 전에 연결을 끊는다고 가정해 보겠습니다. 이 과정에서 어떤 일이 발생합니까?

계속되나요?

답변1

프로세스는 ssh를 통해 연 셸의 하위 프로세스이므로 셸에서 로그아웃하는 즉시(예: 연결 끊기) 프로세스가 종료됩니다.

이 문제를 해결하기 위해 다양한 방법을 사용할 수 있습니다.

  1. nohup다음을 사용하여 프로그램을 시작하고(끊지 않고) 취소합니다.

    nohup somecommand &
    disown %1
    

    출력 파이프를 ( 와 사이 ) $PWD/nohup.out삭제하려는 경우 모든 출력을 파일로 리디렉션합니다 ./dev/nullsomecommand&

  2. GNU Screen 또는 tmux와 같은 터미널 멀티플렉서를 사용하십시오.

    tmux
    #Inside tmux
    somecommand
    

    Ctrl그런 다음 + B및를 사용하여 tmux 세션에서 분리합니다 D. 이제 안전하게 연결을 끊을 수 있습니다. 다른 쉘에서 tmux 세션을 재개하려면 다음을 실행하십시오.

    tmux a
    

    이제 당신은 당신이 떠난 껍질로 돌아왔습니다.

관련 정보