Même si ce n’est pas une réponse directe à votre question, elle est étroitement liée au problème que vous avez. Au lieu d'essayer de maintenir la connexion en vie (toutes les connexions finissent par mourir), vous pouvez utiliser des multiplexeurs de terminaux, comme par exemple screen, tmuxqui maintiennent la session en arrière-plan, même si votre terminal est déconnecté.
Essentiellement, lorsque vous vous connectez au serveur SSH, vous exécutez immédiatement screence qui va créer et attacher une nouvelle session:
$ screen
Ensuite, vous travaillez avec le shell comme vous le feriez normalement. Désormais, si la connexion est interrompue, lorsque vous pouvez vous reconnecter au serveur via SSH, vous obtenez une liste des sessions en cours avec:
$ screen -ls
Pour vous rattacher à une session:
$ screen -r <session>
où <session>est le PID ou un nom de session. Vous serez reconnecté à votre session et vous pourrez continuer là où vous l'avez laissé!
Vous pouvez même déconnecter la session et vous reconnecter de chez vous pour reprendre le point exact où vous l'avez laissé. Pour détacher la session que vous utilisez C-asuivie de C-d(c'est Control + Apuis Control + D).
Il y a aussi un tutoriel en ligne simple .
L'utilisation de screenet tmuxsur des serveurs distants est considérée comme une pratique recommandée et est fortement recommandée . Certaines personnes vont même jusqu'à avoir screencomme shell de connexion par défaut. Ainsi, lorsqu'elles se connectent, elles commencent immédiatement une nouvelle screensession.