これはあなたの質問に対する直接的な答えではありませんが、あなたが抱えている問題に大きく関連しています。接続を維持しようとする代わりに (すべての接続は最終的には死んでしまいます)、 screen
や tmux
のようなターミナルマルチプレクサを使えば、たとえターミナルが切断されてもバックグラウンドでセッションを維持することができます。
本質的には SSH サーバにログインすると、すぐに screen
を実行し、新しいセッションを作成してアタッチします:
$ screen
その後、通常のようにシェルを使って作業を行います。接続が切断された場合、オンラインに戻ってSSHでサーバに再接続すると、現在のセッションのリストが表示されます。
$ screen -ls
セッションに再アタッチするには:
$ screen -r <session>
ここで<session>
はPIDまたはセッション名です。セッションに再接続され、前のセッションから続けることができます。
セッションを切り離して、自宅から再接続して元の場所から再開することもできます。セッションを切り離すには、C-a
の後にC-d
を使用します(Control + A
の後にControl + D
を使用します)。
簡単なオンラインチュートリアル もあります。
screen
と tmux
をリモートサーバで使用することは ベストプラクティス と考えられており、 強く推奨されています。中には、screen
をデフォルトのログインシェルとして使用している人もいるので、接続するとすぐに新しい screen
セッションが開始されます。