utrata sesji tmux w nieznanych punktach, przyczyna i możliwe rozwiązanie?


27

Próbowałem ponownie dołączyć do długotrwałej sesji Tmux, aby sprawdzić aplikację sieci Web w języku Python. Jednak tmux attachtwierdzi, że nie ma uruchomionej sesji i pspokazuje tmuxproces (pierwszy wiersz), ale ze znakiem zapytania zamiast ptsliczby.

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

Co tmux lspokazuje
jasonwryan

„nie udało się połączyć z serwerem: odmowa połączenia”
mhermans

Odpowiedzi:


40

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 tmuxmapy:

Jeśli gniazdo zostanie przypadkowo usunięte, sygnał SIGUSR1 może zostać wysłany do procesu serwera tmux w celu jego odtworzenia.

Wysyłanie sygnału i załączanie działa:

killall -s SIGUSR1 tmux
tmux attach

Używam byobu, który używa tmuxjako backend, i działało to dla mnie po tym, jak przypadkowo usunąłem gniazdo /tmp/tmux-<pid>. Dzięki!
Nicu Stiurca,

7

Brak terminala jest oznaką odłączonej sesji. Wszystkie tmuxnazwy sesji można znaleźć w ten sposób:

ls $TMP/tmux-$(id -u) lub ls /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 16709jest PID tmux we wpisie.


id -udaje 532i /tmp/tmux-532zawiera pojedynczy plik „default”. W jaki sposób pomaga mi to dalej?
mhermans

Spróbuj tmux -S /tmp/tmux-532/default at, ale domyślna nazwa gniazda powinna być w porządku tmux at. Co mówi lsof-version?
poige

Pierwsze polecenie powoduje odpowiedź „brak sesji”. lsof -v wyjście .
mhermans

lsofjak podano w mojej odpowiedzi, stary. :)
poige

@mhermans, miałem na myśli lsof-wersję mojej odpowiedzi, nie potrzebujemy jej wersji oprogramowania. :)
poige
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.