wyjdź z okna tmux bez zamykania programu Terminala

OK Nie mam pojęcia. Zainstalowałem tmux do uruchomienia kilka dni eksperymentu. Po wpisaniu tmux new -s name pojawiło się nowe okno z zielonym banerem na dole. Kompiluję i uruchamiam program java. Teraz nie wiem jak wyjść z okna (podczas zostaw go uruchomionego). Kursor bash (lub cokolwiek innego) nie odpowiada, ponieważ program java nadal działa. Moim rozwiązaniem jest całkowite zamknięcie programu Terminal i ponowne otwarcie go. Wszelkie pomysły, jak zamknąć okno tmux bez wychodzenia cały program Terminal?

Komentarze

  • man tmux | less -p detach
  • Bardziej interaktywne sposób, możesz zrobić Ctrl+b s, który wyświetli listę sesji, przejdź do tej, którą chcesz zabić i wpisz :kill-session.

Odpowiedź

Odłącz się od aktualnie dołączonej sesji

Sesja

Ctrl + b d lub Ctrl + b :detach

Ekran

Ctrl + a Ctrl + d lub Ctrl + a :detach

Komentarze

  • Następnie musisz uruchomić tmux attach, aby ponownie wejść do otwartej sesji po ponownym połączeniu.
  • I ' zawsze robiłem ENTER ~ . To wydaje się ładniejsze.
  • Czy między ~ i ., a także zwraca permission denied: /home/folder @ThomasEding
  • @alper Brak spacji w wyrażeniu I wpisane powyżej.

Odpowiedź

Wydaje mi się, że poprzednie odpowiedzi są niekompletne. To, co :detach robi, to zamknięcie rzutni, które wyświetlają aktywność tmux. Jednak sam tmux nadal działa w tle, co widać po uruchomieniu ps:

myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev

W rzeczywistości, nawet jeśli zamkniesz terminal i uruchomisz go ponownie, wszelkie procesy tmux NADAL działają w tle.

Aby faktycznie zabić sam proces tmux, musisz zrobić:

tmux kill-session [-t session_name]

lub po prostu:

kill -9 1799

Komentarze

  • Imho, bardziej sensowne byłoby skomentowanie niektórych braków ' w ramach tej konkretnej odpowiedzi i zostaw swój post jako kompletną i zawartą odpowiedź, nie wymagając od czytelników, aby dowiedzieli się, które odpowiedzi są poprzednie, a następnie je przeanalizowali.
  • Myślę, że OP chciał, aby proces w tle (w jego przypadku java) był kontynuowany , więc zabicie go przyniosłoby efekt przeciwny do zamierzonego. Bardziej interesujące byłoby ponowne dołączenie później do odłączonego procesu za pomocą tmux attach-session.
  • Używanie kill -9 jest absolutnie Wrong Way ™ to zrobić. Spowoduje to wysłanie sygnału SIGKILL, który nie pozwoli na oczyszczenie procesu po sobie, co może spowodować poważne problemy z wiszącymi zasobami. SIGKILL powinno być używane tylko wtedy, gdy proces został już uprzejmie poproszony o wyczyszczenie i zamknięcie za pomocą SIGTERM lub podobnego i, z dowolnego powodu, odmawia; nawet wtedy należy unikać wysyłania SIGKILL, jeśli to możliwe. Ta odpowiedź sugeruje (niepoprawnie), że powinna to być jedna z pierwszych rzeczy, które osoba powinna zrobić, aby zamknąć proces w tle, taki jak serwer tmux.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *