web-dev-qa-db-ja.com

画面を別の端末からリモートで切り離す方法

ですから、目の前に2つのターミナルが開いています。

  1. / dev/pts/1- 'コントローラー'
  2. / dev/pts/2- 'レシーバー'

私は現在、 ttyecho を使用して/ pts1から/ pts2のコマンドを実行しています。
画面を一覧表示できます-ttyecho -n /dev/pts/2 screen -ls/pts1から問題なく、/ pts2で結果を確認します。
画面に添付できますttyecho -n /dev/pts/2 screen -x [blah]/pts1から/ pts2で問題ありません。しかし、私ができないのは、画面に接続してから切り離す場合です。

したがって、/ dev/pts/2が画面内にある場合は、/ dev/pts1からttyechoを使用してコマンドを実行することにより、画面から切り離そうとしています。

送ってみました...

ttyecho -n /dev/pts/2 ^a+d  
ttyecho -n /dev/pts/2 screen -d -r 
ttyecho -n /dev/pts/2 screen -D -RR
ttyecho -n /dev/pts/2 screen -d -r
ttyecho -n /dev/pts/2 screen -DRi
ttyecho -n /dev/pts/2 Ctrl+a+d
ttyecho -n /dev/pts/2 Ctrl+a d
ttyecho -n /dev/pts/2 CTRL + A
ttyecho -n /dev/pts/2 control+a

だから私が必要なのは次のいずれかだと思います:

  • 画面を切り離すために送信できるコマンド[〜#〜]または[〜#〜]
  • どういうわけか、ttyechoを介してある種の疑似キーボードコマンドを他の画面に送信して、それを切り離します。

どんな助けでも大歓迎です。

3
ManreeRist

できるよ

$ screen -ls

これにより、このようなすべての画面セッションが一覧表示されます。

There are screens on:
        8365.pts-6.vm2    (Attached)
        7317.pts-1.vm2    (Attached)
2 Sockets in /var/run/screen/S-root.

次に、画面IDを使用して画面セッションを切り離すことができます。

例:

$ screen -d 8365
[8365.pts-6.vm2 detached.]
3
Abhi1227

ttyechoセッションを切り離すためにscreenを使用する必要はありません。screenに依頼してください。

screen -d pts-2

これにより、「pts-2」という名前に一致するセッションが切り離されます。デフォルトでは、pts/2で開始された画面セッションに一致します。

3
Stephen Kitt