명명된 스크린 세션을 다시 연결하거나 생성하시겠습니까? (또는 지속적인 화면 세션)

명명된 스크린 세션을 다시 연결하거나 생성하시겠습니까? (또는 지속적인 화면 세션)

기본적으로 자동으로 다시 연결하고 싶은 원격 화면 세션이 있습니다. 현재 다음 명령(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

관련 정보