1

VPN トンネルを使用して職場のネットワークに接続し、次に SSH を使用して cygwin を実行している職場の PC に接続します。ログインすると、画面セッションにアタッチでき、すべてがうまく機能します。

しばらくすると、コンピューターから離れると、遅かれ早かれ VPN トンネルがタイムアウトします。両端の SSH 接続は最終的にタイムアウトになり、最終的にコンピューターに戻って作業を行います。理論的には、これは VPN を再起動し、SSH 経由で再接続してから「screen -r -d」を実行するだけの簡単なことです。

ただし、どうやら sshd デーモンが cygwin PC でタイムアウトになると、画面セッションが何らかのハング状態のままになります。screen セッションの実行中に cygwin bash シェル ウィンドウのクローズ ボックスをクリックすると、同様のハング状態を再現できます。

これが発生したら、画面セッションを回復して、何も失わないようにする方法はありますか?

4

2 に答える 2

5

かなりの実験を重ねた結果、次のようにして画面セッションを回復することができました。

  1. サーバー画面プロセスの PID を検索します: ps | grep スクリーン
  2. サーバーに HUP シグナルを送信します: kill -1 <PID>
  3. screen クライアントを実行します: screen -r -d
于 2011-01-12T02:45:24.547 に答える
3

screen(デッド) SSH セッションの pty でブロックされています。それを殺すことによって回復しsshdます。

Linux を使用していて、現在画面内にいないと仮定します。

$ pgrep -U $UID sshd | xargs -rn1 pstree -hp
sshd(16305)────bash(16306)────スクリーン(16670)
sshd(16544)────bash(16545)────xargs(16705)────pstree(16707)
$ kill 16305
$ スクリーン -r
于 2011-01-11T06:26:59.447 に答える