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
.