OK Ich bin neu in diesem Bereich. Ich habe tmux
installiert, um es auszuführen Ein mehrtägiges Experiment. Nachdem ich tmux new -s name
eingegeben hatte, bekam ich ein neues Fenster mit einem grünen Banner unten. Ich kompiliere und starte ein Java-Programm. Jetzt weiß ich nicht, wie ich das Fenster verlassen soll (während Lassen Sie es laufen). Der Bash-Cursor (oder was auch immer) reagiert nicht, da das Java-Programm noch läuft. Meine bisherige Lösung besteht darin, das Terminal-Programm vollständig zu beenden und erneut zu öffnen. Ideen zum Beenden des tmux-Fensters ohne Beenden das gesamte Terminal-Programm?
Kommentare
-
man tmux | less -p detach
- Für mehr Interaktivität Auf diese Weise können Sie
Ctrl+b s
ausführen, um Sitzungen aufzulisten, zu der zu navigierenden Sitzung zu navigieren und:kill-session
einzugeben.
Antwort
Von aktuell angehängter Sitzung trennen
Sitzung
Strg + b d oder Strg + b :detach
Bildschirm
Strg + a Strg + d oder Strg + a :detach
Kommentare
- Anschließend müssen Sie
tmux attach
ausführen, um die offene Sitzung nach dem erneuten Verbinden erneut aufzurufen. - I ' haben immer getan
ENTER ~ .
Dies scheint schöner zu sein. - Gibt es Platz zwischen
~
und.
und es wird auchpermission denied: /home/folder
@ThomasEding - @alper zurückgegeben. Keine Leerzeichen im Ausdruck I. oben eingegeben.
Antwort
Die vorherigen Antworten sind meines Erachtens unvollständig. :detach
beendet die Ansichtsfenster, in denen die tmux-Aktivität angezeigt wird. TMux selbst wird jedoch weiterhin im Hintergrund ausgeführt, wie Sie sehen können, indem Sie ps
ausführen:
myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev
Selbst wenn Sie das Terminal beenden und erneut starten, werden alle tmux-Prozesse NOCH im Hintergrund ausgeführt.
Um den tmux-Prozess selbst tatsächlich zu beenden, müssen Sie Folgendes tun:
tmux kill-session [-t session_name]
oder einfach:
kill -9 1799
Kommentare
- Imho, es wäre sinnvoller, die Mängel einer Antwort ' unter dieser bestimmten Antwort zu kommentieren und hinterlassen Sie Ihren Beitrag als vollständige und enthaltene Antwort, ohne dass die Leser herausfinden müssen, welche Antworten zuvor vorliegen, und diese dann analysieren müssen.
- Ich denke, OP wollte speziell, dass der Hintergrundprozess (in seinem Fall Java) fortgesetzt wird Es wäre also kontraproduktiv, es zu töten. Interessanter wäre es, später mit
tmux attach-session
erneut eine Verbindung zum getrennten Prozess herzustellen. - Die Verwendung von
kill -9
ist absolut das Falscher Weg ™, um dies zu tun. Dies sendet einSIGKILL
-Signal, das es dem Prozess nicht ermöglicht, nach sich selbst zu bereinigen, was zu ernsthaften Problemen mit baumelnden Ressourcen führen kann.SIGKILL
sollte nur verwendet werden, wenn ein Prozess bereits höflich aufgefordert wurde, überSIGTERM
oder ähnliches und aus irgendeinem Grund zu bereinigen und herunterzufahren weigert sich, dies zu tun; Selbst dann sollte man es vermeiden,SIGKILL
zu senden, wenn dies möglich ist. Diese Antwort schließt (fälschlicherweise), dass es eines der ersten Dinge sein sollte, die eine Person tun sollte, um einen Hintergrundprozess wie einen tmux-Server herunterzufahren.