다중 연결 세션에서 사용자를 수정하기 위해 "screen -X" 명령을 보내는 방법

다중 연결 세션에서 사용자를 수정하기 위해 "screen -X" 명령을 보내는 방법

screen특정 창으로 이동하기 위해 GNU에서 키 시퀀스를 바인딩하고 싶다고 가정해 보겠습니다 . 나는 이것을 할 수 있습니다 :

bind ^t exec screen -X select foo

(저는 이것을 의도적으로 단순화하고 있습니다. 실제 응용 프로그램의 execsa 명령은 전환할 창을 동적으로 결정한 다음 해당 screen -X명령을 실행합니다.)

좋습니다. 잘 작동합니다. 다른 컴퓨터에서 동일한 세션에 연결(통과) 할 때 screen -x문제가 발생합니다 . 새 컴퓨터에서는 ^a^t예상대로 작동하고 창으로 전환됩니다. 하지만 원래 머신으로 돌아가면 새 머신과의 연결을 유지한 후 ^a^t윈도우로 전환합니다.새 기계에서. 새 기계를 제거하면 모든 것이 정상으로 돌아갑니다.

이것은 세션이므로 -S아무 소용이 없습니다. 이 세션은 비밀번호로 보호되어 있지 않습니다. 또한 기계 독립적인 것처럼 보입니다 exec. 원래 기계에서 수동으로 실행하는 동안 screen -X select foo내부적으로 는 잘 작동하지만 원래 기계의 screen별도 터미널(예: 외부 screen)에서 실행하면 여전히 다른 기계의 창을 전환합니다.

screen -X실행 중인 동일한 컴퓨터의 추가 사용자에게만 영향을 미치 도록 하려면 어떻게 해야 합니까 ? (더 쉬운 경우 사용자/컴퓨터에 영향을 미치는 것도 허용됩니다.)

답변1

at이 명령을 사용하면 현재 보고 있는 문제를 해결할 수 있을 것 같습니다 . atscreen's man의 명령 설명에는 다음과 같이 나와 있습니다.

존재하다[식별자][#|*|%] 명령 [인수 ... ].
...
공유 창에서 연결된 각 디스플레이에 대해 명령이 반복됩니다.
...

창을 전환하려면 두 군데가 있어야 할 것 같습니다.

관련 정보