![다중 연결 세션에서 사용자를 수정하기 위해 "screen -X" 명령을 보내는 방법](https://linux55.com/image/202110/%EB%8B%A4%EC%A4%91%20%EC%97%B0%EA%B2%B0%20%EC%84%B8%EC%85%98%EC%97%90%EC%84%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%22screen%20-X%22%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EB%B3%B4%EB%82%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
screen
특정 창으로 이동하기 위해 GNU에서 키 시퀀스를 바인딩하고 싶다고 가정해 보겠습니다 . 나는 이것을 할 수 있습니다 :
bind ^t exec screen -X select foo
(저는 이것을 의도적으로 단순화하고 있습니다. 실제 응용 프로그램의 exec
sa 명령은 전환할 창을 동적으로 결정한 다음 해당 screen -X
명령을 실행합니다.)
좋습니다. 잘 작동합니다. 다른 컴퓨터에서 동일한 세션에 연결(통과) 할 때 screen -x
문제가 발생합니다 . 새 컴퓨터에서는 ^a^t
예상대로 작동하고 창으로 전환됩니다. 하지만 원래 머신으로 돌아가면 새 머신과의 연결을 유지한 후 ^a^t
윈도우로 전환합니다.새 기계에서. 새 기계를 제거하면 모든 것이 정상으로 돌아갑니다.
이것은 세션이므로 -S
아무 소용이 없습니다. 이 세션은 비밀번호로 보호되어 있지 않습니다. 또한 기계 독립적인 것처럼 보입니다 exec
. 원래 기계에서 수동으로 실행하는 동안 screen -X select foo
내부적으로 는 잘 작동하지만 원래 기계의 screen
별도 터미널(예: 외부 screen
)에서 실행하면 여전히 다른 기계의 창을 전환합니다.
screen -X
실행 중인 동일한 컴퓨터의 추가 사용자에게만 영향을 미치 도록 하려면 어떻게 해야 합니까 ? (더 쉬운 경우 사용자/컴퓨터에 영향을 미치는 것도 허용됩니다.)
답변1
at
이 명령을 사용하면 현재 보고 있는 문제를 해결할 수 있을 것 같습니다 . at
screen's man의 명령 설명에는 다음과 같이 나와 있습니다.
존재하다[식별자][#|*|%] 명령 [인수 ... ].
...
공유 창에서 연결된 각 디스플레이에 대해 명령이 반복됩니다.
...
창을 전환하려면 두 군데가 있어야 할 것 같습니다.