Даже если это не прямой ответ на ваш вопрос, это тесно связано с вашей проблемой. Вместо того , чтобы пытаться держать соединение (все соединения в конце концов умирают) , вы можете использовать терминальные мультиплексоры, как 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
сеанс.