tmux est décédé et dit «pas de sessions» - existe-t-il un moyen de récupérer?

18

Ça craint.

$ tmux attach-session
no sessions

Mon administrateur système a mis à niveau tmux et maintenant je ne peux pas le rattacher. Mes processus fonctionnent toujours selon ps ux. Y a-t-il un espoir de récupérer ma session?

Mise à jour : il y a une prise /tmp/tmux-1234, j'ai donc essayé tmux -L /tmp/tmux-1234/default attach, mais tmux ne fait rien. Hourra.

un nerd payé
la source

Réponses:

36

La façon la plus rapide de déterminer si vous pouvez récupérer est la suivante:

killall -10 tmux

Cela enverra le signal pour recréer tous les fichiers socket pour tous les processus tmux en cours d'exécution. Si vous n'êtes pas root, pas de problème, cela ne signalera que votre processus tmux de toute façon.

Pour faire court, si tmux n'est pas en cours d'exécution (ps xu | grep tmux), vous êtes foutu :(

h0tw1r3
la source
2
Cela fonctionne, mais je ne savais pas pourquoi cela fonctionne. Il s'avère que le signal 10 est un signal défini par l' utilisateur , et tmux dit qu'il "recréera le socket du serveur sur SIGUSR1" .
DaoWen
Comme cela pourrait aider les autres: j'ai dû trouver le PID du processus tmux exécutant ma session perdue et le faire kill -10 "PID".
user35915
(1) Merci pour cette réponse, cela m'a fait économiser une tonne de travail :) (2) Je pense qu'il serait utile de mentionner que les messages que vous recevez lorsqu'un autre utilisateur exécute également tmux, à savoir tmux(12345): Operation not permitted, sont attendus.
David Z
@DaoWen selon le signal homme (7), la valeur du signal 10 correspond à SIGUSR1, donc tout va bien
rotation le
2

tmux n'est pas garanti d'être compatible entre les mises à jour; demandez à votre administrateur système de vous informer avant d'effectuer des mises à niveau ou utilisez une copie que vous avez créée localement avec laquelle il est moins susceptible de jouer.

Bob
la source