Próbowałem ponownie dołączyć do długotrwałej sesji Tmux, aby sprawdzić aplikację sieci Web w języku Python. Jednak tmux attach
twierdzi, że nie ma uruchomionej sesji i ps
pokazuje tmux
proces (pierwszy wiersz), ale ze znakiem zapytania zamiast pts
liczby.
Co to znaczy --- czy ta sesja tmux została trwale utracona i co mogło ją spowodować? Czy jest jeszcze sposób, aby spojrzeć na bieżący stan procesu python, odrodzonego w sesji tmux i uruchomionego w pts/19
(drugi wiersz)?
[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
pokazujeOdpowiedzi:
Rozwiązanie dzięki uprzejmości serwisu Webfaction :
Ponieważ proces był nadal uruchomiony, problemem było usunięte gniazdo, prawdopodobnie spowodowane wyczyszczonym katalogiem tmp.
Według
tmux
mapy:Wysyłanie sygnału i załączanie działa:
źródło
byobu
, który używatmux
jako backend, i działało to dla mnie po tym, jak przypadkowo usunąłem gniazdo/tmp/tmux-<pid>
. Dzięki!Brak terminala jest oznaką odłączonej sesji. Wszystkie
tmux
nazwy sesji można znaleźć w ten sposób:ls $TMP/tmux-$(id -u)
lubls /var/run/tmux/tmux-$(id -u)
- to trochę zależy od dystrybucji. Prawie niezależny od dystrybucji (i bardziej hardkorowy) to:
lsof -n -p 16709 -a -U
gdzie
16709
jest PID tmux we wpisie.źródło
id -u
daje532
i/tmp/tmux-532
zawiera pojedynczy plik „default”. W jaki sposób pomaga mi to dalej?tmux -S /tmp/tmux-532/default at
, ale domyślna nazwa gniazda powinna być w porządkutmux at
. Co mówilsof
-version?lsof -v
wyjście .lsof
jak podano w mojej odpowiedzi, stary. :)