OK, jestem nowy w tym. Zainstalowałem, tmux
aby przeprowadzić kilkudniowy eksperyment. Po wpisaniu tmux new -s name
mam nowe okno z zielonym sztandarem na dole. Kompiluję i uruchamiam program Java. Teraz nie wiem, jak wyjść z okna (pozostawiając je uruchomione). Kursor bash (lub cokolwiek) nie odpowiada, ponieważ program Java nadal działa. Moim dotychczasowym rozwiązaniem jest całkowite zamknięcie programu Terminal i ponowne jego otwarcie. Jakieś pomysły na wyjście z okna tmux bez wychodzenia z całego programu Terminal?
80
man tmux | less -p detach
Odpowiedzi:
Odłącz od aktualnie dołączonej sesji
Sesja
Ctrl+ b dlub Ctrl+b
:detach
Ekran
Ctrl+ a Ctrl+ dlub Ctrl+a
:detach
źródło
tmux attach
aby ponownie wejść do otwartej sesji po ponownym połączeniu.ENTER ~ .
Wydaje się to ładniejsze.Wierzę, że poprzednie odpowiedzi są niekompletne. Co
:detach
to jest zamknięcie rzutni wyświetlających aktywność tmux. Jednak sam tmux nadal działa w tle, co widać po uruchomieniups
: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 Wciąż działają w tle.
Aby faktycznie zabić sam proces tmux, musisz:
tmux kill-session [-t session_name]
lub po prostu:
kill -9 1799
źródło
tmux attach-session
.kill -9
jest absolutnie niewłaściwym sposobem (tm), aby to zrobić. To wysyłaSIGKILL
sygnał, który nie pozwoli na sam proces czyszczenia, co może powodować poważne problemy z wiszącymi zasobami.SIGKILL
powinien być stosowany tylko wtedy, gdy proces został już uprzejmie poproszony o oczyszczenie i zamknięcie za pośrednictwemSIGTERM
lub w podobny sposób, i z jakiegokolwiek powodu odmawia; nawet wtedy należy nadal unikać wysyłania,SIGKILL
jeśli mogą. Ta odpowiedź wnioskuje (niepoprawnie), że powinna to być jedna z pierwszych rzeczy, które osoba powinna zrobić, aby zamknąć proces w tle, taki jak serwer tmux.