원격 CentOS 5.6 시스템에서 일부 작업을 수행하고 있지만 네트워크가 계속 오프라인 상태입니다. 다시 연결한 후 일시 중단된 세션을 재개할 수 있는 방법이 있습니까?
편집: 저는 일부 업데이트와 설치에 yum을 사용하고 있는데, 어떤 일을 하는 동안 프로세스가 계속 중단되면 이것이 문제가 될 수 있을지 걱정됩니다.
답변1
주변에는 방법이 없지만 이를 방지하기 위해 tmux
tmux를 시작하고 작업을 시작한 다음 계속 진행합니다. 돌아가서 연결이 끊어진 경우 다시 연결하고 를 입력하기만 하면 됩니다 tmux attach
.
여기에 예가 있습니다.
$ tmux
$ make <something big>
......
Connection fails for some reason
Reconect
$ tmux ls
0: 1 windows (created Tue Aug 23 12:39:52 2011) [103x30]
$ tmux attach -t 0
Back in the tmux sesion
답변2
tmux와 화면 제안은 모두 좋은 제안입니다. 이는 귀하의 질문에 대한 답변을 암시하지만 실제로는 명시하지 않습니다. 질문에 대한 대답은: 절대 그렇지 않습니다. SSH를 통해 로그인한 경우 연결이 끊어지면 쉘이 종료됩니다. 해결책은 로그인하고 즉시 일종의 가상 터미널을 시작하는 것입니다(이는 dtach
, abduco
, 또는 tmux
과 같은 도구를 사용하여 수행 할 수 있음 screen
). 연결이 끊어지면 현재 있는 셸은 종료되지만 새 셸을 열고 실제로 작업 중인 셸을 실행하는 가상 터미널에 다시 연결할 수 있습니다.
답변3
누군가 reptyr
답변 대신 댓글을 달아서 투표를 할 수 없지만, 수정된 질문에 대한 좋은 답변인 것 같고 CentOS에서도 잘 작동합니다.
바라보다:
- https://github.com/nelhage/reptyr
- https://www.ostechnix.com/reptyr-move-running-process-new-terminal/
다시 연결한 후 일시 중단된 세션을 재개할 수 있는 방법이 있습니까?
편집: 저는 일부 업데이트와 설치에 yum을 사용하고 있는데, 어떤 일을 하는 동안 프로세스가 계속 중단되면 이것이 문제가 될 수 있을지 걱정됩니다.
마찬가지로 yum 업데이트 세션에 대한 원격 연결이 끊어졌습니다. 그래서 검색해서 이 질문을 찾았습니다. 그런 다음 이번에는 다시 연결하여 화면을 사용했습니다.
- SSH를 다시 연결
- 화면
- 위의 링크를 따라가서 Reptyr을 설치하세요.
- ps -a grep 냠 |
- 렙텔PSID
몇 시간 전에 Yum님이 알려주신 회복 팁을 방금 봤습니다.
기술적으로 대답은 모두 정확합니다. 이는 일시 중지된 세션을 재개하는 것이 아니라 고아 프로세스를 현재 세션으로 재설정하는 것입니다.
그리고 그것은 매우 유용합니다. 또한 ...
답변4
아니요, 연결을 끊은 후에는 셸을 다시 시작할 수 없습니다. 대신에 수행할 수 있는 작업은 연결을 끊은 후에도 실행 중인 명령이 계속 실행되도록 하는 것입니다.
이를 달성하려면 일반적으로 대부분의 쉘에 내장된 명령인 "nohup" 및 "disown" 명령을 사용하십시오. 즉, 아무것도 설치할 필요가 없습니다. 그러나 이는 비대화형 명령에만 적용됩니다.
따라서 단계는 다음과 같습니다.
- 서버에 로그인
- "nohup sudo yum update &" 명령을 실행합니다. (이렇게 하면 현재 디렉터리의 nohup.out 파일에도 모든 출력이 기록됩니다.)
- "%1 거부" 실행
- 이 시점에서 자유롭게 연결을 끊거나 연결이 끊길 때까지 기다리세요 :)
서버로 돌아올 때 "tail nohup.out"만 입력하면 실행 중인 명령을 볼 수 있습니다.