명명 된 화면 세션을 다시 연결하거나 작성 하시겠습니까? (또는 지속적인 스크린 세션) 이유로 든 세션이 종료되면 다음에

기본적으로 자동으로 다시 연결하려는 원격 화면 세션이 있습니다. 현재 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.