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-getprocessus à contrôler depuis une nouvelle session SSH, une screensession ou similaire. Mon préféré pour cela est la reptyrcommande:
$ 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-getsortie 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 ptracepiè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 10626utilise le ptracedébogage tandis que la sudo reptyr -T 10626commande 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 sshdprocessus n'est pas contrôlé par un terminal hôte, mais qu'il fournit la partie esclave d'un terminal - un ptspé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 sshdprocessus 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-getprocessus soit toujours en cours. Il aurait dû mourir avec toute la chaîne de processus jusqu'à SSH. J'ai remarqué que celado-dist-upgradedémarre automatiquement dans une sessionscreen/byobu: peut-être dans certaines circonstances,apt-getfait la même chose?