web-dev-qa-db-ja.com

別のSSHセッションからスクリーンを強制的にデタッチするにはどうすればよいですか?

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

新しいSSHログインからそのScreenセッションにアタッチしたいと思います。重要なことがそこで起こっているので、私はそのScreenセッションを終了したくありません。 :)

私が持っていると思うオプション(解決する方法がわからない):

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

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

screen -dは既に実行中の画面セッションを切り離し、screen -rは既存のセッションを再接続します。 screen -d -rを実行することにより、画面を強制的にデタッチしてからセッションを再開します。

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

ここに添付してください。それが何を意味するにせよ、それをしてください。

注: "screen -list"を使用してセッションのステータスを確認することをお勧めします。

205
Matt S.

screen -d -rまたはscreen -D -RRで試してください

39

短い答え

  1. 他をイジェクトせずに再接続します:screen -x
  2. ディスプレイのリストを取得します:^A*、切断するものを選択し、dを押します

説明された答え

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

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

注:displayを呼び出すこともできます:

  • "user front-end"(画面のatコマンドマニュアル)
  • "client"(この機能がdetach-clientであるtmuxボキャブラリー)
  • "端末"(ユーザーインターフェイスでウィンドウを呼び出すため)/に依存

1。セッションを再接続しますscreen -x

-xは、切り離されていない画面セッションに接続します、切り離さずに

2。このセッションのリストdisplaysPREFIX*

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

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

矢印を使用して、ターゲットdisplayを選択し、dを押します。何も起こらない場合は、独自のディスプレイをデタッチしようとしましたが、画面はデタッチしません。それが別のものである場合、1、2秒以内に、エントリは消えます。

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

オプションで:コンテンツを画面に合わせるために、reflowPREFIXF(大文字のF)

画面のマニュアルページからの抜粋:

ディスプレイ

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

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