マルチ接続セッションでユーザーを変更するために「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のコマンドの説明には次のように記載されています。

存在する[識別子][#|*|%] コマンド [引数...]。
...
共有ウィンドウで接続されている各ディスプレイに対してコマンドが繰り返されます。
...

ウィンドウを切り替えるには2つの場所が必要です。

関連情報