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
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 zwracapermission 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łuSIGKILL
, 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łaniaSIGKILL
, 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.
man tmux | less -p detach
Ctrl+b s
, który wyświetli listę sesji, przejdź do tej, którą chcesz zabić i wpisz:kill-session
.