GNU- 스크린 : 실행중인 화면 세션에 명령을 보내는 스크립트 실행

StackOverflow https://stackoverflow.com/questions/899609

  •  23-08-2019
  •  | 
  •  

문제

스크립트를 작성하여 이름을 변경하고 화면에서 실행 중이라고 가정 할 때 현재 탭에 대한 모니터링을 켜는 것이 가능합니까?

감사.

도움이 되었습니까?

해결책

나는 이것이 효과가 있다고 생각한다 :

if [-n "$STY"]; then
    screen -X title "foo"
    screen -X monitor on
fi

다른 팁

화면 맨 페이지에서 :

  -X   Send the specified command to a running screen  session.  You  can
       use  the  -d or -r option to tell screen to look only for attached
       or detached screen sessions. Note that this command  doesn't  work
       if the session is password protected.

기본적으로 실행하십시오

screen -X title mynewtitle
screen -X monitor on

단자가 화면 내에서 실행되지 않으면 조용히 오류가 발생합니다.

notinscreen:~$ screen -X title mynewtitle
notinscreen:~$

분리 된 상태에서도 명령을 특정 세션으로 보낼 수도 있습니다. "main"이라는 화면 세션이 주어졌습니다.

$ screen -S main
[detach from screen session]
$ screen -ls
There is a screen on:
        2073.main       (Detached)
1 Socket in /tmp/uscreens/S-dbr.

.. 마지막으로 활성 창의 제목을 보낼 수 있습니다. blah:

$ screen -x main -X title blah

.. 또는 특정 창 (명명 된 oldwindow 이 예에서) : :

$ screen -x main -p oldwindow -X title blah

사용하는 대신 -x main 프로세스 ID (From screen -ls), 또한 창 이름을 사용하는 대신 (-p oldwindow) 창 번호를 사용할 수 있습니다.

$ screen -x 2073 -p 0 -X title h

세션이 하나만 있으면 세션 PID 또는 이름을 지정할 필요가 없습니다.

화면 선언 $STY 환경 변수, 당신은 그것을 사용해 볼 수 있습니다.

정보를 표시하거나 화면 세션 자체와 상호 작용하려고합니까? 다음과 같이 메시지를 다시 보낼 수 있습니다.http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocconsole/screen.1.html#lbai)

메시지 줄 화면에는 메시지 줄에 정보 메시지 및 기타 진단이 표시됩니다. 이 라인은 화면 하단에 나타나도록 분산되지만 컴파일 중에 화면 상단에 나타날 수 있습니다. 터미널에 TermCap에 정의 된 상태 라인이있는 경우 화면이 메시지를 표시하는 데이를 사용합니다. 그렇지 않으면 현재 화면의 줄이 일시적으로 덮어 쓰고 출력이 순간적으로 중단됩니다. 메시지 라인은 몇 초 후 지연 후 자동으로 제거되지만 타이핑을 시작하면 (상태 라인이없는 터미널에서) 조기에 제거 할 수도 있습니다.

메시지 라인 기능은 ANSI 개인 정보 보호 메시지 제어 시퀀스를 통해 현재 창에서 실행되는 응용 프로그램에서 사용할 수 있습니다. 예를 들어, 쉘 내에서 다음과 같은 것을 시도하십시오.

echo '<esc>^Hello world from window '$WINDOW'<esc>\\' 

여기서 ''는 탈출 인 '^'은 문자 그대로의 위쪽 화자이며 ''는 단일 백 슬래시로 바뀝니다.

화면이 투명하게 실행되므로 화면 세션을 감지하는 것은 어렵습니다. 키 프레스를 보내려고한다면, 그것은 효과가 있으며, 세션에 있지 않으면 터미널에 약간의 쓰레기를 채울 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top