J'utilise Mac 10.9.5 avec un shell bash. Parfois, lorsque je ssh sur une autre machine et que la connexion meurt (par exemple, Internet tombe en panne ou je me déplace vers un nouvel emplacement), la fenêtre du terminal avec la session SSH ouverte est gelée et La seule façon pour moi de progresser est de la fermer et de démarrer une nouvelle session.
Existe-t-il un moyen de configurer des choses telles que, si la connexion de la session SSH meurt, je reviens à mon shell bash normal, comme avant l’exécution de ma commande SSH?
ServerAliveCountMax 4
etServerAliveInterval 15
, si le client SSH ne reçoit pas de réponse du serveur après 4 * 15 = 60 secondes, il doit se déconnecter automatiquement. Voir le page de manuel pour plus de détails.return
puis~.
Plus d'informations apple.stackexchange.com/questions/35524/…Réponses:
Vous pouvez suspendre puis tuer le
ssh
processus qui a raccroché. Pour ce faire, vous devez émettre la séquence d'échappement, suspendre lassh
processus, puis utiliserkill -9
pour tuer ce processus.La touche d'échappement par défaut du ssh livré avec OS X le
~
personnage. Vous devez le saisir immédiatement après une nouvelle ligne pour que ssh le respecte. Et puis la séquence de touches Contrôle - z est utilisé pour suspendre et mettre en arrière-plan une tâche dans bash.Alors essayez cette séquence de touches:
Revenir
~
Contrôle - z
Si cela fonctionne, vous verrez quelque chose comme:
Cette ligne de sortie:
vous dire l'ID de processus du
ssh
processus sur votre machine. Ses48895
dans cet exemple. Ce processus est toujours en cours d'exécution, il vient d'être suspendu et mis en arrière-plan. Vous devez le tuer.Vous pouvez le faire avec le
kill
commander. Vous voulez le tuer avec des préjugés alors utilisez le-9
option lorsque vous appelezkill
ainsi:Il suffit d'utiliser le PID de votre
ssh
processus lorsque vous appelez cette commande à la place du48895
PID j'ai utilisé ci-dessus.Et vous aurez votre invite de retour.
Vous pouvez également ouvrir une seconde fenêtre de terminal et utiliser
ps
trouver lessh
processus dans la liste de processus et émettre lekill -9
appel contre le PID. Cependant, ce genre de processus empêche le retour de votre invite dans la fenêtre d'origine du terminal, n'est-ce pas?la source