вийти з вікна tmux, не виходячи з програми Terminal


80

Добре, я новачок у цьому. Я встановив, tmuxщоб провести кількаденний експеримент. Після набору тексту tmux new -s nameя отримав нове вікно із зеленим банером внизу. Я компілюю і запускаю програму java. Тепер я не знаю, як вийти з вікна (поки залиште його працювати). Курсор bash (або будь-який інший) не відповідає, оскільки програма java все ще працює. Поки що моє рішення - повністю завершити програму Terminal і знову відкрити її. Будь-які ідеї, як вийти з вікна tmux, не виходячи з усієї програми терміналів?


2
man tmux | less -p detach
Jasonwryan

Відповіді:


145

Відірватися від поточно доданого сеансу

Сесія

Ctrl+ b dабо Ctrl+b :detach

Екран

Ctrl+ a Ctrl+ dабо Ctrl+a :detach


Потім потрібно запустити, tmux attachщоб знову ввійти у відкритий сеанс після повторного підключення.
Бесі

1
Я завжди робив ENTER ~ .Це здається приємніше.
Томас Едінг

8

Попередні відповіді неповні, я вважаю. Що :detachпотрібно зробити, це закрити вікна перегляду, які демонструють активність tmux. Однак сам tmux все ще працює у фоновому режимі, як ви можете бачити ps:

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

Насправді, навіть якщо ви вийдете з терміналу і запустили його знову, будь-які процеси tmux ВИНАГИ працюють у фоновому режимі.

Щоб фактично вбити сам процес tmux, вам потрібно зробити:

tmux kill-session [-t session_name]

або просто:

kill -9 1799


5
Імхо, було б більше сенсу коментувати деякі недоліки відповіді під цією конкретною відповіддю і залишити свою публікацію як повну та вміщену відповідь, не вимагаючи від читачів з'ясовувати, які відповіді є попередніми, а потім аналізувати їх.
techraf

2
Я думаю, що ОП спеціально хотів, щоб фоновий процес (java, в його випадку) продовжувався, тому вбивство було б контрпродуктивним. Більш цікавим буде згодом повторне приєднання до відокремленого процесу tmux attach-session.
ThomasH

Використовувати kill -9абсолютно Неправильний шлях (тм) для цього. Це посилає SIGKILLсигнал, який не дозволить процесу очиститися після себе, що може спричинити серйозні проблеми з звисаючими ресурсами. SIGKILLйого слід застосовувати лише тоді, коли процес уже ввічливо попросив очистити та закрити через SIGTERMабо подібне і з будь-якої причини відмовляється це робити; навіть тоді слід уникати надсилання, SIGKILLякщо вони можуть. Ця відповідь підказує (неправильно), що це має бути однією з перших речей, яку людина повинна зробити для відключення фонового процесу, як tmux-сервер.
eestrada
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.