session tmux perdue dans les pts inconnus, cause et solution possible?

J'essayais de rattacher à une session tmux de longue durée pour vérifier une application web python. Cependant, tmux attach qu'il n'y a pas de session en cours d'exécution et ps montre un process tmux (première ligne), mais avec un point d'interrogation au lieu du numéro de pts .

Qu'est-ce que cela signifie — est-ce que cette session tmux est définitivement perdue et qu'est-ce qui pourrait l'avoir causé? Existe-t-il encore un moyen d'examiner l'état actuel du process python, généré dans la session tmux et exécuté dans pts/19 (deuxième ligne)?

 [mhermans@web314 ~]$ ps -ef | grep mhermans mhermans 16709 1 0 Mar04 ? 00:26:32 tmux mhermans 8526 16710 0 Mar04 pts/19 00:20:04 python2.7 webapp.py root 9985 6671 0 10:18 ? 00:00:00 sshd: mhermans [priv] mhermans 10028 9985 0 10:18 ? 00:00:00 sshd: mhermans@pts/16 mhermans 10030 10028 0 10:18 pts/16 00:00:00 -bash mhermans 16247 10030 6 10:28 pts/16 00:00:00 ps -ef mhermans 16276 10030 0 10:28 pts/16 00:00:00 grep mhermans mhermans 16710 16709 0 Mar04 pts/19 00:00:00 -bash mhermans 16777 16709 0 Mar04 pts/21 00:00:00 -bash 

Solution gracieuseté de Webfaction-support :

Comme le process était toujours en cours d'exécution, le problème était un socket supprimé, possiblement causé par un directory tmp-purged.

Selon le tmux tmux:

Si le socket est accidentellement retiré, le signal SIGUSR1 peut être envoyé au process du server tmux pour le recréer.

Donc, envoyer le signal et attacher des œuvres:

 killall -s SIGUSR1 tmux tmux attach 

L'absence du terminal est un signe de session détachée. Et tous vos noms de session tmux peuvent être trouvés ainsi:

ls $TMP/tmux-$(id -u) ls /var/run/tmux/tmux-$(id -u) ls $TMP/tmux-$(id -u) ls /var/run/tmux/tmux-$(id -u)

– c'est un peu dépendant de la dissortingbution. Presque distro-indépendant (et plus hardcore) serait:

lsof -n -p 16709 | awk '{if($5 == "unix") print;}'

16709 est le PID de tmux dans votre list.