「失われた」画面セッションを回復する方法は?

「失われた」画面セッションを回復する方法は?

どういうわけか、画面に「通知されずに」画面ウィンドウを閉じたため、セッションはまだ表示されていますattached。これにより、このセッションに再接続できなくなります。どうですか?

me@iupr-serv8:~$ screen -r
There are several suitable screens on:
    25028.pts-19.XXX-serv8  (01/05/2012 07:15:34 PM)    (Attached)
    24658.pts-19.XXX-serv8  (01/05/2012 07:11:38 PM)    (Detached)
    24509.pts-19.XXX-serv8  (01/05/2012 07:10:00 PM)    (Detached)
    18676.pts-5.XXX-serv8   (01/02/2012 06:55:33 PM)    (Attached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
me@XXX-serv8:~$ screen -r 25028
There is a screen on:
    25028.pts-19.XXX-serv8  (01/05/2012 07:15:33 PM)    (Attached)
There is no screen to be resumed matching 25028.

【書き直す】

最後に、セッションが失われたのではなく、最初のセッションのIDがあることがわかりました0。 2番目のセッションのIDはです1

答え1

まずを使って分離してみてくださいscreen -d。それでも機能しない場合は、昇順で試してみてください。強調する

   -d|-D [pid.tty.host]
        does  not  start screen, but detaches the elsewhere running screen session. It has the
        same effect as typing "C-a d" from screen's controlling terminal. -D is the equivalent
        to  the  power  detach key.  If no session can be detached, this option is ignored. In
        combination with the -r/-R option more powerful effects can be achieved:

   -d -r   Reattach a session and if necessary detach it first.

   -d -R   Reattach a session and if necessary detach or even create it first.

   -d -RR  Reattach a session and if necessary detach or create it. Use the first  session  if
           more than one session is available.

   -D -r   Reattach a session. If necessary detach and logout remotely first.

   -D -R   Attach  here and now. In detail this means: If a session is running, then reattach.
           If necessary detach and logout remotely first.  If it was not running create it and
           notify the user. This is the author's favorite.

   -D -RR  Attach here and now. Whatever that means, just do it.

答え2

screen -r '1234.somescreensession'

画面には次のいずれかがあります。

1234.somescreensession(添付ファイル)

一致する1234.somescreensessionを復元する画面がありません。

これは画面セッションを元に戻す簡単な方法です。

screen -D -r '1234.somescreensession'

答え3

Write Failed: broken pipeスクリーンセッションを接続するときにメッセージと共にSSH接続が予期せず終了した後も、同じ問題が発生しました。ただし、上記のコマンドを使用して画面セッションを再接続することはできません。私は次のバージョンを使用しています。

~> screen --version
Screen version 4.00.03 (FAU) 23-Oct-06

明らかに、まだ実行中のインスタンスがあるため、セッションを切断してsshd再接続することはできません。PID適切なインスタンスを識別しsshdkillpingした後、reconnectを使用できましたscreen -r


注:1つ以上のsshd悪魔が見つかります。 1つは現在のログインに対応し、もう1つは古いscreenセッションに対応します(実際にはsshd他の悪魔に属している他の悪魔が複数存在する可能性がありますscreen)。

答え4

時々、いくつかの画面がバックグラウンドで実行されています。

次の方法で復元できます。

screen -r [pid]

画面を取得するには、まず実行してから、実行screen -R中のすべてのPIDを画面に表示してから回復しますscreen -r [pid]

関連情報