Beenden Sie das tmux-Fenster, ohne das Terminal-Programm zu beenden.

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 auch permission 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 ein SIGKILL -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, über SIGTERM 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.