원격 호스트에 SSH를 통해 여러 프로세스를 시작하고 프로세스가 종료되기 전에 연결을 끊는다고 가정해 보겠습니다. 이 과정에서 어떤 일이 발생합니까?
계속되나요?
답변1
프로세스는 ssh를 통해 연 셸의 하위 프로세스이므로 셸에서 로그아웃하는 즉시(예: 연결 끊기) 프로세스가 종료됩니다.
이 문제를 해결하기 위해 다양한 방법을 사용할 수 있습니다.
nohup
다음을 사용하여 프로그램을 시작하고(끊지 않고) 취소합니다.nohup somecommand & disown %1
출력 파이프를 ( 와 사이 )
$PWD/nohup.out
삭제하려는 경우 모든 출력을 파일로 리디렉션합니다 ./dev/null
somecommand
&
GNU Screen 또는 tmux와 같은 터미널 멀티플렉서를 사용하십시오.
tmux #Inside tmux somecommand
Ctrl그런 다음 + B및를 사용하여 tmux 세션에서 분리합니다 D. 이제 안전하게 연결을 끊을 수 있습니다. 다른 쉘에서 tmux 세션을 재개하려면 다음을 실행하십시오.
tmux a
이제 당신은 당신이 떠난 껍질로 돌아왔습니다.