У меня обычно есть несколько окон терминала, каждое из которых подключено через ssh к удаленному серверу. В каждом окне я работаю, используя экранную программу gnu, чтобы обеспечить постоянство интерактивных процессов в случае отключения.
В настоящее время, когда соединение ssh обрывается (например, когда я перевожу свой клиентский компьютер на ночь), мне приходится вручную и нудно перезапускать ssh-сессию внутри каждого окна, а затем в каждом окне утомительно возобновлять определенный сеанс экрана (например, «screen - r 3453 "в одном окне", screen -r 3462 "в другом и т. д.)
Есть ли элегантный способ автоматизировать это? В частности:
переподключите сессию ssh, если она сбрасывается, как только обнаруживается интернет-соединение
запустить конкретный экземпляр экрана для окна терминала, как только ssh переподключится
Спасибо за любые советы по этому
источник
Не нужно взламывать петли bash. Тебе нужно заглянуть в автосш . Я не использовал его много себя, но я понимаю, что вы просто заменить
ssh
сautossh
вашей командой.Редактировать: На самом деле, autossh поставляется со скриптом,
rscreen
который называется, предназначенный именно для этой цели.источник