기본적으로 자동으로 다시 연결하고 싶은 원격 화면 세션이 있습니다. 현재 다음 명령(iTerm 북마크 또는 별칭)을 사용하여 이 작업을 수행하고 있습니다.
ssh host -t screen -x thesessionname
이것은 잘 작동하지만 어떤 이유로든 세션이 종료되면 다음에 연결할 때 세션이 다시 생성되기를 바랍니다. 플래그 -R
는 다음과 screen
같습니다.거의완벽한:
ssh host -t screen -R -S thesessionname
..하지만 세션이 이미 연결되어 있으면 두 번째 세션이 만들어집니다. (단순히 -R
첫 번째 분리된 세션을 찾고, 아무것도 발견되지 않으면 새 세션이 생성됩니다.)
플래그가 연결된 세션도 찾도록 하고 존재하지 않는 -R
경우에만 새 세션을 생성하는 방법이 있습니까 ?thesessionname
이것이 쉽게 가능하지 않다면 화면 세션이 종료될 때 어떻게 자동으로 다시 생성할 수 있습니까? 아마도 이름이 지정된 세션을 찾는 cron을 통해 실행되는 스크립트가 존재하지 않으면 생성됩니까?
답변1
시도에 대해 좀 더 끈질기게 화면에 지시하십시오.
-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
답변2
몇 가지 좋은 옵션. 첫째, 내가 가장 좋아하는 것:
screen -x -R
이는 사용 가능한 첫 번째 화면 세션에 연결되며(다른 연결이 연결된 경우 공유) 화면 세션이 전혀 없으면 새 화면 세션을 시작합니다.
screen -d -RR
이에 대한 문서에는 "세션을 다시 연결하고 필요한 경우 분리하거나 생성합니다. 두 개 이상의 세션을 사용할 수 있는 경우 첫 번째 세션을 사용하십시오."라고 나와 있습니다. 기본적으로 double-R은 연결할 첫 번째 세션을 찾도록 합니다.
screen -D -RR
"지금 여기에 붙이세요. 그게 무슨 뜻이든 그냥 하세요." 연결된 다른 세션을 분리하고 원격으로 로그아웃한 다음 가능한 첫 번째 세션에 연결합니다. 기본적으로 기존 세션에 연결하기 위해 필요한 모든 작업을 수행하고, 거기에 아무것도 없으면 새 세션을 만듭니다.
첫 번째(-x -R)는 문제를 일으킬 가능성이 가장 적지만(다른 연결을 분리하지 않음) 연결할 것이 있으면 항상 무언가에 연결하고 연결할 것이 없으면 무언가를 생성합니다.
답변3
나는 사용한다
screen -dRRS sessname
나는 다른 셸의 전체 로그인이 삭제되는 것을 원하지 않으며 -D
.-x