Zwykle mam kilka okien terminali, z których każde jest połączone za pomocą ssh ze zdalnym serwerem. W każdym oknie pracuję za pomocą programu ekranowego GNU, aby zapewnić trwałość procesów interaktywnych w przypadku rozłączenia.
Obecnie za każdym razem, gdy połączenie ssh zostaje zerwane (na przykład gdy uśpiam komputer kliencki w nocy), muszę ręcznie i żmudnie ponownie uruchamiać sesję ssh w każdym oknie, a następnie w każdym oknie żmudnie wznawiać określoną sesję ekranu (np. „Screen - r 3453 „w jednym oknie”, „screen -r 3462” w drugim itd.)
Czy istnieje elegancki sposób na zautomatyzowanie tego? Konkretnie:
ponownie połącz sesję ssh, jeśli spadnie, gdy tylko zostanie wykryte połączenie internetowe
uruchom konkretną instancję ekranu dla okna terminala, gdy tylko ssh ponownie się połączy
Dzięki za wszelkie wskazówki na ten temat
źródło
Nie musisz hakować pętli bash. Musisz zajrzeć do autossh . Sam nie używałem go zbyt często, ale rozumiem, że po prostu zastępujesz
ssh
jeautossh
swoim rozkazem.Edycja: W rzeczywistości autossh zawiera skrypt o nazwie,
rscreen
który wydaje się być zaprojektowany właśnie do tego celu.źródło