私は通常、Windows ラップトップから PuTTY を使用して Linux ボックスにログインし、そこで screen を実行します。会社の上司がラップトップを Windows 7 にアップデートすることを決定してから、PuTTY セッションがフリーズするようになりました。私は通常、PuTTY セッションを終了し、screen セッションを再接続するか (切断されている場合)、PuTTY セッションがフリーズしたときに screen セッションが切断されていなかった場合は、「-d -r」を発行します。
私の問題は、最初はデタッチを拒否したスクリーン セッションがあることです。私は次のようにします。
screen -d -r 6313.sessionName
しかし、コマンドはそこで停止してしまいます。
/var/run/screen// ディレクトリに、各 screen セッションに対応する「ファイル」があることが分かりました。頑固なセッションには 700 の権限があり、他のセッション (切り離されていたセッション) には 600 の権限があることに気づきました。
そこで、そのファイルの権限を 600 に変更しました。画面には、そのファイルが「分離」されていると表示されます。ただし、再度接続しようとすると、コマンドは、再びそこで停止します。
使用
ps aux | grep 6313
プロセス状態が「Ss」として表示されます。これは、割り込み可能なスリープ状態であることを意味します。これは、同じプロセス状態を表示する他の分離された画面セッションと何ら変わりありません。
このセッションを回復する方法がわかりません。何か提案はありますか?
答え1
コマンドを使用する場合screen
、通常は次のようにソケットを開きます。
$ screen -S <SOCKET_NAME>
アタッチまたは再アタッチしたい場合は、次を使用します。
$ screen -x <SOCKET_NAME>
答え2
Ctrlscreen セッションをデタッチするには、 + A+を使用しますD。次に、セッションを再アタッチするには、 を使用しますscreen -r <pid>
。使用中の screen セッションに接続する場合は、screen -dr <pid>
まず を使用して screen セッションをデタッチし、次に再アタッチします。