Nawet jeśli nie jest to bezpośrednia odpowiedź na twoje pytanie, jest to wysoce związane z problemem, który masz. Zamiast próbować utrzymać połączenie przy życiu (wszystkie połączenia w końcu umierają) możesz użyć multiplekserów terminala, takich jak screen i tmux, które utrzymują sesję przy życiu w tle, nawet jeśli twój terminal zostanie rozłączony.
Zasadniczo, gdy zalogujesz się do serwera SSH, natychmiast uruchamiasz screen, który utworzy i dołączy nową sesję:
$ screen
Następnie idziesz dalej i wykonujesz swoją pracę z powłoką, tak jak byś to robił normalnie. Teraz, jeśli połączenie zostanie przerwane, po powrocie do sieci i ponownym połączeniu się z serwerem przez SSH, otrzymasz listę bieżących sesji z:
$ screen -ls
Aby ponownie dołączyć do sesji:
$ screen -r <session>
gdzie <session> jest PID lub nazwą sesji. Zostaniesz ponownie połączony z sesją i będziesz mógł kontynuować od miejsca, w którym skończyłeś!
Możesz nawet odłączyć sesję i połączyć się ponownie z domu, aby kontynuować dokładnie od tego miejsca, w którym przerwałeś. Aby odłączyć sesję używasz C-a a następnie C-d (czyli Control + A a następnie Control + D).
Istnieje również prosty samouczek online .
Używanie screen i tmux na zdalnych serwerach jest uważane za najlepszą praktykę i jest bardzo zalecane. Niektórzy ludzie posuwają się nawet do tego, że mają screen jako domyślną powłokę logowania, więc kiedy się łączą, natychmiast rozpoczynają nową sesję screen.