기본적으로 자동으로 다시 연결하려는 원격 화면 세션이 있습니다. 현재 iTerm 책갈피 또는 별명으로 다음 명령을 사용하여이 작업을 수행하고 있습니다.
ssh host -t screen -x thesessionname
이것은 잘 작동하지만 어떤 이유로 든 세션이 종료되면 다음에 연결할 때 다시 생성하고 싶습니다. 의 -R
깃발 screen
은 거의 완벽합니다.
ssh host -t screen -R -S thesessionname
..하지만 세션이 이미 연결되어 있으면 두 번째 세션이 생성됩니다 ( -R
첫 번째 분리 된 세션을 찾지 못하면 새 세션을 만듭니다)
-R
연결된 세션을 플래그로 표시하고 thesessionname
존재하지 않는 경우에만 새 세션 을 만들 수있는 방법 이 있습니까?
이 작업을 쉽게 수행 할 수없는 경우 스크린 세션이 종료되면 어떻게 자동으로 다시 만들 수 있습니까? 아마도 cron을 통해 실행되어 이름이 지정된 세션을 찾아서 존재하지 않아야하는 스크립트를 작성합니까?
답변
시도하는 것에 대해 조금 더 영속적이라고 화면에 지시하십시오.
-D -R
Attach here and now. In detail this means: If a session is run-
ning, then reattach. If necessary detach and logout remotely
first. If it was not running create it and notify the user.
This is the author's favorite.
따라서 두 가지를 결합하면 솔루션이 있어야합니다 ( “-DR”은 “-D -R”과 동일).
screen -DR <yoursession>
또한 유용하고 유용한 정보는 다음을 사용하여 실행중인 세션을 볼 수 있습니다.
screen -ls
답변
몇 가지 좋은 옵션. 먼저, 내가 가장 좋아하는 것 :
screen -x -R
사용 가능한 첫 번째 화면 세션 (다른 연결이 연결되어있는 경우 공유)에 연결되고 화면 세션이 전혀 없으면 새 세션을 시작하십시오.
screen -d -RR
“세션을 다시 연결하고 필요한 경우 분리하거나 작성하십시오. 둘 이상의 세션이 사용 가능한 경우 첫 번째 세션을 사용하십시오.” 기본적으로 double-R은 연결할 첫 번째 세션을 찾습니다.
screen -D -RR
“지금 여기에 연결하십시오. 그 의미가 무엇이든 그대로하십시오.” 연결된 다른 세션을 분리하고 원격으로 로그 아웃하고 가능한 첫 번째 세션에 연결합니다. 기본적으로 기존 세션에 연결하기 위해 필요한 모든 작업을 수행하고 아무것도 없으면 새 세션을 만듭니다.
첫 번째 (-x -R)는 문제를 일으킬 가능성이 가장 적지 만 (다른 연결을 분리하지 않음) 연결할 항목이 있으면 항상 무언가에 연결하고 연결할 것이 없으면 무언가를 만듭니다.
답변
나는 사용한다
screen -dRRS sessname
다른 쉘에서 전체 로그인을 삭제 -D
하지 않기를 원하며 다중 연결 모드를 원하지 않습니다 -x
.