SSH를 통해 매우 긴 작업을 실행하는 데 사용하는 원격 Linux 서버가 있습니다. 잘 작동하지만, 물론 어떤 이유로 연결이 중단되면 작업이 종료됩니다.
구체적으로 다음과 같은 작업을 실행하고 있습니다.
[myName@localStation]$ ssh john_doe@myRemoteServer
Password: *****
[john_doe@remoteServer]$ ./myVeryLongTask.script > myOutputLog.txt
네트워크 연결이 실패해도 작업이 계속 실행되도록 SSH 연결을 조정하는 방법이 있습니까?
답변1
화면 명령을 읽어야 합니다(Google의 빠른 결과는 다음과 같습니다.)
Screen을 사용하면 설명하는 이유로 원격 연결을 계속 실행하고 반환할 수 있습니다. 무인 작업을 실행하거나 세션을 무기한 열어 두는 데에도 유용합니다.
"맨스크린" 자세히 알아보기
편집: 더 나은 HOWTO 링크는 다음과 같습니다.화면: 연결이 끊어져도 프로세스를 계속 실행합니다.
답변2
screen
정말 훌륭해요. 다른 두 가지 옵션은 at
다음과 같습니다 nohup
.
at
at, - 나중에 실행하기 위해 작업을 대기열에 추가하거나 검사하거나 삭제합니다.
at
대화형 셸을 사용하여 명령을 실행하거나 텍스트 파일에 저장하고 다음 위치에 전달할 수 있습니다 .$ cat foo ./myVeryLongTask.script > myOutputLog.txt $ at now < foo
nohup
nohup - 정지의 영향을 받지 않는 명령을 실행하고 tty가 아닌 명령으로 출력합니다.
명령을 시작하려면 다음을 수행하십시오.
$nohup ./myVeryLongTask.script > myOutputLog.txt
답변3
완전성을 위해,분리또 다른 옵션입니다. detach
위 링크 요약:
dtach는 화면 분리 기능을 에뮬레이트하는 작은 프로그램으로, 제어 터미널에 의해 보호되지 않는 환경에서 프로그램을 실행하고 나중에 연결할 수 있도록 해줍니다.
screen
or보다 크기가 더 작고 기능이 더 많습니다.at
nohup