Bien que vous ne puissiez pas vous rattacher à une session SSH interrompue, vous pouvez réparer le processus en cours d'exécution dans SSH - fonctionnellement équivalent à ce que vous voulez.
Instructions
Dans votre cas, vous reprenez le apt-get
processus à contrôler depuis une nouvelle session SSH, une screen
session ou similaire. Mon préféré pour cela est la reptyr
commande:
$ sudo apt-get install reptyr
$ ps ax | grep apt-get
10626 pts/8 R+ 0:32 apt-get upgrade
Ensuite, avec le pid que vous avez trouvé pour votre processus:
$ sudo reptyr -T 10626
Ou si cela ne fonctionne pas, essayez:
$ reptyr 10626
Après cette étape, toutes vos entrées au clavier vont au programme que vous avez repris. Malheureusement, vous ne verrez pas l'ancienne sortie de la session SSH, telle que la apt-get
sortie vous demandant une confirmation.
Explications
Il existe plusieurs autres outils qui fonctionnent essentiellement de la même manière reptyr
(c'est-à-dire via une ptrace
pièce jointe de débogage). Voir les questions et réponses suivantes où elles sont discutées:
Dans les instructions ci-dessus, la pièce jointe reptyr 10626
utilise le ptrace
débogage tandis que la sudo reptyr -T 10626
commande utilise le vol TTY et est préférable ( détails ).
Enfin, la raison pour laquelle vous ne pouvez pas prendre le contrôle d'une session SSH de cette façon est qu'un sshd
processus n'est pas contrôlé par un terminal hôte, mais qu'il fournit la partie esclave d'un terminal - un pts
périphérique - tandis que la partie maître qui le contrôle réside sur le ordinateur client, ici avec une session SSH en panne entre les deux. Lorsque vous forcez la reprise d'un tel sshd
processus avec reptyr -s <pid>
, votre saisie au clavier va à ce processus, pas à son processus enfant actif. Donc, un "Ctrl + Z" va tout simplement tuer cela sshd
.
apt-get
processus soit toujours en cours. Il aurait dû mourir avec toute la chaîne de processus jusqu'à SSH. J'ai remarqué que celado-dist-upgrade
démarre automatiquement dans une sessionscreen
/byobu
: peut-être dans certaines circonstances,apt-get
fait la même chose?