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


27

기본적으로 자동으로 다시 연결하려는 원격 화면 세션이 있습니다. 현재 iTerm 책갈피 또는 별명으로 다음 명령을 사용하여이 작업을 수행하고 있습니다.

ssh host -t screen -x thesessionname

이것은 잘 작동하지만 어떤 이유로 든 세션이 종료되면 다음에 연결할 때 다시 생성하고 싶습니다. 의 -R깃발 screen거의 완벽합니다.

ssh host -t screen -R -S thesessionname

..하지만 세션이 이미 연결되어 있으면 두 번째 세션이 생성됩니다 ( -R첫 번째 분리 된 세션을 찾지 못하면 새 세션을 만듭니다)

-R연결된 세션을 플래그로 표시하고 thesessionname존재하지 않는 경우에만 새 세션 을 만들 수있는 방법 이 있습니까?

이 작업을 쉽게 수행 할 수없는 경우 스크린 세션이 종료되면 어떻게 자동으로 다시 만들 수 있습니까? 아마도 cron을 통해 실행되어 이름이 지정된 세션을 찾아서 존재하지 않아야하는 스크립트를 작성합니까?

답변:


32

시도하는 것에 대해 조금 더 영속적이라고 화면에 지시하십시오.

-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

5
완벽, screen -x -R -S main내가 결국 사용하는 것입니다 (강제 분리없이 동일하게 작동), 감사합니다!
dbr

때로는을 사용하고 싶을 sceen -r <yoursession>때 (새 세션을 만드는 대신) 이미 연결된 경우 오류가 발생합니다.
danger89

11

몇 가지 좋은 옵션. 먼저, 내가 가장 좋아하는 것 :

screen -x -R

사용 가능한 첫 번째 화면 세션 (다른 연결이 연결되어있는 경우 공유)에 연결되고 화면 세션이 전혀 없으면 새 세션을 시작하십시오.

screen -d -RR

"세션을 다시 연결하고 필요한 경우 분리하거나 작성하십시오. 둘 이상의 세션이 사용 가능한 경우 첫 번째 세션을 사용하십시오." 기본적으로 double-R은 연결할 첫 번째 세션을 찾습니다.

screen -D -RR

"지금 여기에 연결하십시오. 그 의미가 무엇이든 그대로하십시오." 연결된 다른 세션을 분리하고 원격으로 로그 아웃하고 가능한 첫 번째 세션에 연결합니다. 기본적으로 기존 세션에 연결하기 위해 필요한 모든 작업을 수행하고 아무것도 없으면 새 세션을 만듭니다.

첫 번째 (-x -R)는 문제를 일으킬 가능성이 가장 적지 만 (다른 연결을 분리하지 않음) 연결할 항목이 있으면 항상 무언가에 연결하고 연결할 것이 없으면 무언가를 만듭니다.


1
이것들은 모두 훌륭하고 유용한 옵션이지만, 아무도 원래 이름 으로 세션 연결하는 원래 질문에 대답하지 않습니다 .
Daniel

5

나는 사용한다

screen -dRRS sessname

다른 쉘에서 전체 로그인을 삭제 -D하지 않기를 원하며 다중 연결 모드를 원하지 않습니다 -x.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.