Screen 세션에 다시 연결하거나 새 명령을 시작하는 방법

Screen 세션에 다시 연결하거나 새 명령을 시작하는 방법

screen저는 부팅 텍스트 모드(콘솔) 이메일 클라이언트(예: )를 사용하기 시작한 alpine이후로 네트워크 연결 끊김으로 인해 부분적으로 작성된 이메일을 잃어버린 적이 없습니다 . 굉장히 유용하다.

그러나 이제 이메일 클라이언트를 시작하는 것이 좀 더 복잡해졌습니다.

  1. 이전 세션이 있는지 확인screen -list
  2. 이전 단계에 따라 다릅니다.
    • 그렇다면 다시 연결해 보세요.screen -U -r <number>
    • 그렇지 않은 경우 이메일 클라이언트를 시작하십시오.screen -U alpine

간단한 명령(간단한 스크립트)만 실행할 수 있도록 이 단계를 어떻게 단순화할 수 있습니까 start_or_reconnect alpine? 여러 세션이 활성화된 경우 이는 버그이거나 첫 번째 세션을 사용한다고 가정할 수 있습니다.

답변1

명시적인 세션 이름(옵션)을 사용 하고 기존 세션에 다시 연결하거나 세션이 없는 경우 세션을 만드는 데 -S사용됩니다 .-RR

alias m='screen -S alpine -d -RR alpine'

답변2

빠르고 멍청하다:

#!/bin/sh
ARG=`screen -list | grep Detached | awk '{print $1}'`
if [ -z "$ARG" ]; then
    screen -U alpine
else
    screen -U -r $ARG
fi

관련 정보