Навіть це не є прямою відповіддю на ваше запитання, воно дуже пов'язане з вашою проблемою. Замість того, щоб намагатися підтримувати з'єднання живим (усі з'єднання зрештою вмирають), ви можете використовувати термінальні мультиплексори, як, наприклад, 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
сеанс.