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
, tmux
qui 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 screen
ce 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-a
suivie de C-d
(c'est Control + A
puis Control + D
).
Il y a aussi un tutoriel en ligne simple .
L'utilisation de screen
et tmux
sur des serveurs distants est considérée comme une pratique recommandée et est fortement recommandée . Certaines personnes vont même jusqu'à avoir screen
comme shell de connexion par défaut. Ainsi, lorsqu'elles se connectent, elles commencent immédiatement une nouvelle screen
session.