Même si ce n'est pas une réponse directe à votre question, elle est fortement 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 screen
et tmux
qui maintiennent la session en vie en arrière-plan même si votre terminal est déconnecté.
Essentiellement, lorsque vous vous connectez au serveur SSH, vous lancez immédiatement screen
qui créera et attachera une nouvelle session :
$ screen
Ensuite, vous continuez et faites votre travail avec le shell comme vous le feriez normalement. Maintenant, si la connexion est interrompue, lorsque vous pouvez vous reconnecter au serveur par SSH, vous obtenez une liste des sessions en cours :
$ screen -ls
Pour se rattacher à une session :
$ screen -r <session>
où <session>
est le PID ou un nom de session. Vous serez reconnecté à votre session et vous pourrez reprendre là où vous vous êtes arrêté !
Vous pouvez même détacher la session et vous reconnecter de chez vous pour reprendre exactement là où vous vous êtes arrêté. Pour déconnecter la session, utilisez C-a
suivi de C-d
(c'est-à-dire Control + A
et ensuite Control + D
).
Il y a aussi un simple tutoriel en ligne .
L'utilisation de screen
et tmux
sur des serveurs distants est considérée comme une meilleure pratique et est hautement recommandée. Certaines personnes vont même jusqu'à avoir screen
comme shell de connexion par défaut, de sorte que lorsqu'elles se connectent, elles commencent immédiatement une nouvelle session screen
.