tmux zmarł i mówi „bez sesji” - czy jest jakiś sposób na powrót do zdrowia?

17

To jest do bani.

$ tmux attach-session
no sessions

Mój sysadmin zaktualizował tmux i teraz nie mogę się ponownie podłączyć. Moje procesy nadal działają zgodnie z ps ux. Czy jest jakaś nadzieja na odzyskanie sesji?

Aktualizacja : Jest gniazdo /tmp/tmux-1234, więc próbowałem tmux -L /tmp/tmux-1234/default attach, ale tmux nic nie robi. Brawo.

płatny kujon
źródło

Odpowiedzi:

32

Najszybszym sposobem ustalenia, czy możesz odzyskać, jest:

killall -10 tmux

To wyśle ​​sygnał do odtworzenia wszystkich plików gniazd dla dowolnych uruchomionych procesów tmux. Jeśli nie jesteś rootem, nie ma problemu, to i tak zasygnalizuje twój proces tmux.

Krótko mówiąc, jeśli tmux nie jest uruchomiony (ps xu | grep tmux), to masz problem:

h0tw1r3
źródło
2
To działa, ale byłem zdezorientowany, dlaczego to działa. Okazuje się, że sygnał 10 jest sygnałem zdefiniowanym przez użytkownika , a tmux mówi, że „odtworzy gniazdo serwera na SIGUSR1” .
DaoWen,
Jak mogłoby to pomóc innym: musiałem znaleźć PID procesu tmux, który uruchamiał moją utraconą sesję kill -10 "PID".
user35915
(1) Dzięki za tę odpowiedź, zaoszczędziło mi to mnóstwo pracy :) (2) Myślę, że warto wspomnieć, że wiadomości, które otrzymujesz, gdy inny użytkownik również używa tmux, a mianowicie tmux(12345): Operation not permittedsą oczekiwane.
David Z
@ Zdzierdzony Kiedy zgodnie z sygnałem man (7), wartość sygnału 10 odpowiada SIGUSR1, więc wszystko jest dobrze
spinup
2

tmux nie ma gwarancji zgodności między aktualizacjami; poproś swojego administratora systemu, aby poinformował cię przed wykonaniem aktualizacji lub skorzystaj z kopii zbudowanej lokalnie, z którą jest mniej prawdopodobne, że zepsuje.

Kok
źródło