以前、長時間実行されるスクリーンセッションにを再接続しましたscreen -dr control
。ただし、このコマンドが画面に再アタッチされず、永久にハングすることがあります(10分以上経過してから中止しました)。これは、SSH接続が予期せずに切断された場合にのみ発生し、画面がで適切に切断された場合には発生しませんCtrl-A d
。以下のような他のスイッチ、screen -x
またはscreen -D -RR
さらには動作しません。
この投稿は、画面の切断を完了する画面セッションを保持しているPTYを強制終了することを示唆しています。ただし、screen -dr control
呼び出し元のシェルを強制終了します。
例えば:
$ ps -ef | grep control | grep -v grep
nomad 7387 7109 0 13:05 pts/50 00:00:00 screen -dr control
nomad 15299 1 0 Nov27 ? 00:13:47 SCREEN -S control
$ ps -ef | grep bash | grep 'pts/50'
nomad 7109 7108 0 12:49 pts/50 00:00:00 -bash
リンクされた投稿はbash
、PID 7109 のプロセスを強制終了することを示唆しています。これはscreen -dr control
、PID 7387 のプロセスも強制終了します。その後、画面に接続できません。
SCREEN -S control
スクリーンセッションを開始したプロセスはinit
、親として明らかに殺すことができません。
ハングしたスクリーンセッションに再接続する方法はありますか?
更新:これは、カーネル2.6.32-358.6.1.el6.x86_64を使用するCentOS 6.4で発生します。シェルはすべてbashバージョン4.1.2(1)-releaseです。
screen -ls
これらの「ハング」するケースでは何と言いますか?screen -d -r <session>
は、「切り離して回復」を意味するため、直接切り離さなくても問題ありません。(そして、それを頻繁に行うため、そうではありません...)