画面を別のSSHセッションから強制的に切り離すにはどうすればよいですか?


158

SSHセッション内でScreenを実行しました。ターミナルがフリーズしました。ターミナルを再起動した後、そのScreenセッションはまだ接続されていると見なします。多分そうです。多分それが何を意味するのか本当にわかりません。

新しいSSHログインからそのScreenセッションに接続したいのですが。あそこで重要なことが起こっているので、私はそのスクリーンセッションを殺したくありません。:)

私が持っていると思うオプション(どれも解決方法がわかりません):

  • Screenセッションをデタッチするにはどうすればよいですか?
  • そのScreenセッションが接続されているSSHセッションを終了するにはどうすればよいですか?

回答:


252

ホセが答えたscreen -d -rように、トリックを行う必要があります。これは、manページから取得した2つのコマンドの組み合わせです。

screen -dすでに実行中の画面セッションを切り離し、screen -r既存のセッションを再接続します。を実行するとscreen -d -r、screenが強制的にそれを切り離してから、セッションを再開します。

大文字を使用する場合は、-D -RR渡すのが良すぎるので、manページを引用します。

今すぐここに取り付けます。それが何を意味するにせよ、それをしてください。

注:「screen -list」を使用してセッションのステータスを確認することは常に良い考えです。


3
screen -x入力は高速ですが、完全に同等ではありません。最初に接続を解除することなく、セッションを2回接続するため、マルチディスプレイモードになります。
jlh

10
「Screen Doctor」を覚えておいてください。screen -Dr
user5359531 2017年


6

短い答え

  1. 他のユーザーを取り出さずに再接続します。 screen -x
  2. ディスプレイのリストを取得する:^A *、切断するディスプレイを選択して、を押しますd


説明された答え

背景:同じ問題の説明のある解決策を探していたとき、私は常にこの答えを見つけました。もっと賢明な解決策を提供したいと思います。(たとえば、接続されている他の画面のサイズが異なり、端末でそれを強制的にサイズ変更できません。)

注: PREFIX通常は^A=ctrl+a

注:表示がも呼ばれることがあります。

  • 「ユーザーフロントエンド」at画面のコマンドマニュアル)
  • "クライアント"(この機能が存在するtmuxボキャブラリdetach-client
  • "ターミナル"(ユーザーインターフェイスでウィンドウと呼ぶ)/依存

1. セッションを再アタッチします。screen -x

-x切り離されていないscreenセッションにアタッチし、それを取り外すことなく

2. このセッションのリスト表示PREFIX *

これは、のデフォルトのキーバインディングですPREFIX :displays。画面内で実行し、切断する他のディスプレイを特定します(サイズが小さいなど)。(選択されていない場合、現在の表示は明るい色/太字で表示されます)。

term-type   size         user interface           window       Perms
---------- ------- ---------- ----------------- ----------     -----
 screen     240x60         you@/dev/pts/2      nb  0(zsh)        rwx
 screen      78x40         you@/dev/pts/0      nb  0(zsh)        rwx

矢印を使用 して、目的のディスプレイを選択し、を押しd ます。何も起こらない場合は、独自のディスプレイを切り離そうとしましたが、画面は切り離されません。別の場合は、1〜2秒以内にエントリが消えます。

を押しENTERてリストを終了します。

オプション:コンテンツを画面に合わせるために、リフロー:(PREFIX F大文字のF)

画面のmanページからの抜粋:

ディスプレイ

現在接続されているすべてのユーザーフロントエンド(ディスプレイ)の表形式のリストを表示します。これは、マルチユーザーセッションで最も役立ちます。次のキーを表示リストで使用できます。

  • mouseclick選択した行に移動します。「マウストラック」がオンに設定されている場合に使用できます。
  • space リストを更新する
  • d そのディスプレイを取り外します
  • D そのディスプレイを電源取り外し
  • C-genterまたはescapeリストを終了

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.