Hoooo j'ai fait une ptite manip assez chouette avec mon nunux !
J'ai voulu faire une update de weechat. Je le fais tourner dans tmux. Mais ce weechat il ne sert que pour le relay, du coup jamais je vais dans ce tmux habituellement.
Mais là pour faire une upgrade propre j'ai voulu m'y rendre.
Pas de bol, tmux a été mis à jour et le client n'a pas voulu se connecter au serveur. (server too old).
0 Boosts
0 Likes
Ça se fait en deux étapes. Dans /proc/$PID/map , on retrouve toutes les libs utilisées (entre autre). Si le fichier a été dégagé, il y a un explicite "deleted".
Ensuite il faut chopper l'horrible référence à la lib de la forme "7fe680c94000-7fe680ca9000" .
Et pour retrouver le fichier il faut aller le choper dans /proc/$PID/map_files .
Là on peut le cp ailleurs et lui remettre son joli nom.
On fait ça pour chacune des libs.
Il ne reste plus qu'à LD_LIBRARY_PATH=/le/dossier/ou/vous/avez/tout/mis /proc/$PID/exe attach
et hop vous voilà dans votre session tmux d'antan !
@lord Haha le genre de truc qui donne envie d'avoir des binaires statiques.
@lord "/proc/$(pgrep tmux | head -1)/exe"
Bon, j'aurai pu aller fouiller dans les dépots toussa pour bidouiller.
Mais j'ai tenté une autre approche.
Tenter de se raccrocher à la session directement par le process.
Je chope le pid du serveur avec pgrep. Puis un ptit coup de /proc/$PID/exe attach .
Avec un peu de bol ça pourrait passer.
Mais non ça ne veut pas car les libs ne sont plus à la même version.
Bon, quitte à ne pas aller dans les dépots choper les libs, comment faire ?
Sur le disque je n'ai que les nouvelles libs trop récentes, mais le serveur tmux qui tourne en fond a encore les anciennes libs !
Du coup on peut tenter de retrouver ces libs.