Ook al is dit geen direct antwoord op je vraag, het is zeer gerelateerd aan het probleem dat je hebt. In plaats van te proberen de verbinding in leven te houden (alle verbindingen sterven uiteindelijk) kun je terminal multiplexors gebruiken, zoals screen
en tmux
die de sessie in de achtergrond in leven houden zelfs als je terminal wordt verbroken.
In principe als je inlogt op de SSH server voer je direct screen
uit die een nieuwe sessie aanmaakt en koppelt:
$ screen
Dan ga je verder en doe je je werk met de shell zoals je normaal zou doen. Als de verbinding wordt verbroken, als je weer online kunt komen en opnieuw verbinding kunt maken met de server over SSH, krijg je een lijst van de huidige sessies met:
$ screen -ls
Om opnieuw verbinding te maken met een sessie:
$ screen -r <session>
waarbij <session>
de PID of een sessienaam is. Je wordt opnieuw verbonden met je sessie en je kunt verder gaan waar je gebleven was!
Je kunt zelfs de sessie loskoppelen en opnieuw verbinding maken om weer verder te gaan waar je gebleven was. Om de sessie te ontkoppelen gebruik je C-a
gevolgd door C-d
(dat is Control + A
en dan Control + D
).
Er is ook een eenvoudige online handleiding .
Het gebruik van screen
en tmux
op servers op afstand wordt beschouwd als een best practice en wordt zeer aangeraden. Sommige mensen gaan zelfs zo ver dat ze screen
als hun standaard login shell hebben, dus als ze verbinding maken starten ze meteen een nieuwe screen
sessie.