「失われた」スクリーンセッションを回復する方法


80

どういうわけか、画面に「気づかない」ことなく画面ウィンドウを閉じることができたため、セッションにはまだフラグが付いています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

回答:


108

で最初にデタッチしてみてください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.

11
-d -rオプションを一緒に使用すると、そのセッションが強制的にアタッチされます。
ティムケネディ

常に使用するscreen -xので、一度に複数の場所から接続できます。もちろん、誤ってウィンドウを閉じた場合-d -rは、物事を整理しておく方が良いようです。
mpontillo

5
screen -r '1234.somescreensession'

画面があります:

1234.somescreensession(添付)

1234.somescreensessionに一致する再開する画面はありません。

そのスクリーンセッションを取り戻す簡単な方法を次に示します。

screen -D -r '1234.somescreensession'

4

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

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

どうやら、sshd実行中のインスタンスがまだあったため、セッションをデタッチおよび再アタッチできませんでした。識別した後PIDの適切なインスタンスsshdkillそれをINGの私は再接続することができましたscreen -r


参考までに、間違いなく複数のsshdデーモンが見つかります。1つは現在のログインに対応し、もう1つは古いscreenセッションに属します(実際、複数の他sshdのs が複数のsに属している可能性がありますscreen)。


私は同じ問題をよく呼んでいた
-dianovich

3

複数の画面がバックグラウンドで実行されている場合があります。

それらは次の方法で再開できます。

screen -r [pid]

画面を取得するには、最初にを実行してscreen -Rから、画面で実行中のすべてのPIDが表示されscreen -r [pid]ます。

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