Jak uzyskać dostęp do sesji tmux po jej opuszczeniu?


20

Używam tmux na EC2 AWS, ale chcę zobaczyć, co się dzieje w jednej sesji, którą utworzyłem.

Używam Ctrl+, ba potem d wychodzę z sesji.

Korzystanie z Ubuntu 16.04


2
Próbowałeś tmux attach?
Stephen

po użyciu tmux lub po pierwszym użyciu?
Vitor Abella,

Zwykle luanch tmux, zrób coś, a następnie odłącz. Następnie używasz tmux attach, aby wrócić do poprzedniej sesji.
Stephen

Odpowiedzi:


24

Chcę zobaczyć, co się dzieje w jednej sesji, którą utworzyłem.

O ile mi wiadomo, możesz przeglądać listę sesji tmux za pomocą

tmux list-sessions aby zobaczyć, jakie sesje są obecnie uruchomione na tmux.

Aby zobaczyć, co się dzieje w tych sesjach, musisz dołączyć do konkretnej sesji, aby to zrobić, masz dwie opcje (z doświadczenia).

  1. Jeśli obecnie nie prowadzisz sesji Tmux (lub nie jesteś w sesji Tmux), dołączasz, uruchamiając tmux attach -t n(gdzie -t oznacza sesję docelową, a n to numer sesji).

  2. Jeśli pracujesz w innej sesji tmux, pojawi się błąd podczas próby połączenia się z inną sesją, więc najprostszym sposobem sprawdzenia, co tam jest, jest użycie tmux list-windows -apolecenia, a następnie przesunięcie dowolnego panelu / okna, w którym uruchomione jest zadanie.

Przenoszenie okna za pomocą tmux move-window -s n1 -t n2( -s == okno źródłowe , -t == okno docelowe, do którego dołączone zostanie okno źródłowe. N1 == numer okna, które chcesz przenieść, a n2 to numer okna, do którego się przenosisz).

Format The N1 i N2 numery są sortowane / formatowany jako sessionNumb:windowNumb. Tak więc pierwsza sesja w pierwszym oknie będzie wynosić 0: 1, a druga sesja w pierwszym oknie będzie 1: 1.

Uwaga. n2 musi być dostępną sesją z nie utworzonym jeszcze oknem. Jeśli przeniesiesz okno do już utworzonego okna, pojawi się komunikat „Okno docelowe nie jest puste”, a przejście do nietworzonej sesji spowoduje błąd „nie można znaleźć sesji n”.

Poruszanie okienkiem czasami w jednym oknie może mieć wiele okien i wystarczy przesunąć tylko jedno okienko, jest to pomocne, jeśli potrzebujesz tylko jednego okienka do poruszania się w bieżącym oknie (ponieważ nie możesz przenieść okna w innym oknie).

Podczas przesuwania okna używasz prawie podobnej składni, ale robisz to tmux move-pane -s *n1* -t *n2*.

Gdzie n1 jest teraz formowane tak jak sessionNumb:windowNumb.paneNumbi n2 .

Przykłady

Gdy tmux list-windows -abędziesz miał coś takiego

0:1: Project- (4 panes) [177x48]
0:2: Mirror (3 panes) [177x48]
0:3: Chat! (1 panes) [177x48]
0:4: ssh* (1 panes) [177x48]
1:1: zsh (2 panes) [176x45]
1:2: zsh* (1 panes) [176x45]
1:3: zsh- (1 panes) [176x45]

Teraz, przenosząc okno „Czat” z pierwszej sesji do drugiej, będę musiał uruchomić tmux move-window -s 0:3 -t 1:4(pamiętaj, że nie mogę przenieść okna do już utworzonego okna).

Przesuwanie szyby

Jeśli musisz tylko przesunąć okienko, musisz to zrobić tmux list-panes -alub jeśli już znasz okno, z którego ono pochodzi, możesz tmux list-panes -t 0:1 zobaczyć wyjaśnienia dotyczące formatu powyżej .

Pojawi się wynik pokazujący, że okno 1 sesji 0 (-s 0: 1) ma te panele.

1: [177x34] [history 3/10000, 4119 bytes] %7 (active)
2: [88x13] [history 541/10000, 231972 bytes] %8
3: [88x13] [history 2/10000, 1541 bytes] %9

co jest po prostu nie do zaakceptowania, ale jeśli potrzebujesz więcej informacji, aby dowiedzieć się, który panel naprawdę potrzebujesz, możesz to zrobić

tmux list-panes -F "#{pane_current_command}" -t 0:1

która wyświetli aktualne uruchomione polecenia w każdym okienku.

W moim przypadku

vim
zsh
python (sadly it's runnuning `ranger`)

Więc po określeniu, który panel chcesz (powiedz vim), musisz go przenieść.

tmux move-pane -s 0:1.1 -t 1:1.2w tym przypadku przejść do określonego panelu 2

Jeśli masz tylko jeden panel w oknie docelowym, nie możesz tmux move-pane -s 0:1.1 -t 1:1.żadnego panelu docelowego i nadal będzie działać.

Mam nadzieję, że to odpowiada na pytanie.


0

Postępując zgodnie z powyższą odpowiedzią, możesz spróbować:

tmux lsaby uzyskać numer sesji. I wtedy

tmux attach-session -t <session_number>

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.