Estaba tratando de volver a conectarme a una sesión tmux de larga duración para verificar en una aplicación web de Python. Sin embargo, tmux attach
afirma que no hay una sesión en ejecución y ps
muestra un tmux
proceso (primera línea), pero con un signo de interrogación en lugar del pts
número.
¿Qué significa esto? ¿Esta sesión de tmux se pierde permanentemente y qué podría haberla causado? ¿Todavía hay una manera de ver el estado actual del proceso de Python, generado en la sesión tmux y ejecutándose en pts/19
(segunda línea)?
[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
tmux ls
muestra?Respuestas:
Solución cortesía de Webfaction-support :
Como el proceso aún se estaba ejecutando, el problema era un socket eliminado, posiblemente causado por un directorio tmp purgado.
Según el
tmux
mapage:Entonces enviar la señal y adjuntar trabajos:
fuente
byobu
, que se usatmux
como back-end, y esto funcionó para mí después de que eliminé accidentalmente el zócalo/tmp/tmux-<pid>
. ¡Gracias!La ausencia terminal es un signo de sesión separada. Y todos los
tmux
nombres de sus sesiones se pueden encontrar así:ls $TMP/tmux-$(id -u)
ols /var/run/tmux/tmux-$(id -u)
- Esto es un poco dependiente de la distribución. Casi independiente de la distribución (y más hardcore) sería:
lsof -n -p 16709 -a -U
donde
16709
está el PID de tmux en tu listado.fuente
id -u
da532
y/tmp/tmux-532
contiene un solo archivo "predeterminado". ¿Cómo me ayuda esto más?tmux -S /tmp/tmux-532/default at
, pero el nombre de socket predeterminado debería estar bien contmux at
. ¿Qué dicelsof
-version?lsof -v
salida .lsof
como se indica en mi respuesta, amigo. :)