Nawet jeśli nie jest to bezpośrednia odpowiedź na twoje pytanie, jest ściśle związana z twoim problemem. Zamiast próbować utrzymywać połączenie przy życiu (wszystkie połączenia w końcu umierają), możesz użyć multiplekserów terminali, takich jak screeni, tmuxktóre utrzymują sesję w tle, nawet jeśli terminal zostanie rozłączony.
Zasadniczo po zalogowaniu się na serwerze SSH natychmiast uruchamiasz się, screenaby utworzyć i dołączyć nową sesję:
$ screen
Następnie idź dalej i wykonuj swoją pracę z powłoką, jak zwykle. Teraz, jeśli połączenie zostanie zerwane, kiedy będziesz mógł wrócić do trybu online i ponownie połączyć 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 nazwa sesji. Nastąpi ponowne połączenie z sesją i możesz kontynuować od miejsca, w którym zostało przerwane!
Możesz nawet odłączyć sesję i połączyć się ponownie z domu, aby odebrać dokładnie z miejsca, w którym zostało przerwane. Aby odłączyć sesję, której używasz, C-aa następnie C-d(to Control + Ai wtedy Control + D).
Jest też prosty samouczek online .
Używanie screeni tmuxna zdalnych serwerach jest uważane za najlepszą praktykę i jest wysoce zalecane . Niektóre osoby idą tak daleko, że mają screendomyślną powłokę logowania, więc po nawiązaniu połączenia natychmiast rozpoczynają nową screensesję.