Aujourd’hui, je mettais à jour mon installation Proxmox à distance via la console intégrée, mais j’ai oublié ce que j’étais en train de faire et j’ai fermé l’onglet en plein milieu.

Résultat : impossible de me reconnecter, car les paquets étaient déjà en cours de mise à jour en arrière-plan et la mise à jour avait posé une question sur le remplacement d’un fichier et attendait ma réponse.

Je pouvais donc me connecter en SSH, mais je ne pouvais rien faire, puisque le processus attendait toujours une réponse sur une console à laquelle je n’arrivais pas à me connecter, l’interface ne s’ouvrant pas.

Après avoir fouillé un peu, je suis tombé sur un fil Serverfault qui mentionnait l’utilisation de reptyr pour reprendre la main sur une session de terminal via SSH.

Je note ici ce que j’ai fait exactement pour récupérer la session et terminer la mise à jour :

D’après ce commentaire :

git clone https://github.com/nelhage/reptyr
cd reptyr
make install

Cela a installé reptyr sur la machine.

Ensuite, j’ai cherché toutes les sessions ouvertes avec ps ax | grep pts pour trouver le processus qui m’intéressait.

Puis j’ai trouvé le processus le plus haut dans l’arbre d’appels auquel un pts était assigné, et je m’y suis attaché via son PID :

reptyr -T 1390511

Et j’ai enfin pu terminer la mise à jour ! 🎉