Wie kann ich alle tmux-Sitzungen (oder mindestens mehrere Sitzungen) über die CLI beenden?

94

Wie kann ich alle tmux-Sitzungen (oder mindestens mehrere Sitzungen) über die (Ubuntu) CLI beenden?

Wenn ich es tue, ps aux | grep tmuxsehe ich 3 Prozesse:

UU      2970  0.0  0.0  19556  1228 pts/0    S+   02:48   0:00 tmux
UU      3445  0.0  0.0  12944   988 pts/5    S+   03:31   0:00 grep --color=auto tmux
UU     27557  0.0  0.2  29788  4840 ?        Ss   Jan04   0:02 tmux

Wie könnte ich alle auf einmal töten (oder zumindest einige von ihnen, Selektivität)?

JohnDoea
quelle

Antworten:

169

Sie können verwendet werden, tmux kill-serverum sauber und anmutig alle tmux offene Sitzungen (und Server) zu töten.

Wenn Sie sich in einer tmux-Sitzung befinden, die Sie behalten möchten tmux kill-session -a, schließen Sie mit alle anderen Sitzungen.

Um eine bestimmte Sitzung zu schließen, geben Sie tmux list-sessionsan, welche Sitzung Sie beenden möchten, und beenden Sie dann tmux kill-session -t targetSessiondiese bestimmte Sitzung.

Sie können auch grob töten alle tmux Prozesse mit pkill -f tmux.

Ich hoffe es hilft.

dgonzalez
quelle
1
ps aux | grep tmuxdanach tmux kill-serverzeigt sich noch ein tmux prozess ... das gleiche geht mit pkill -f tmuxwie bei meiner antwort . Kannst du das erklären? Vielen Dank,
JohnDoea
1
@Benia Sind Sie sicher, dass Sie nicht nur den grep tmuxProzess sehen (der in der ps-Ausgabe Ihrer ursprünglichen Frage enthalten ist)?
Steeldriver
2
Wenn Sie ps aux | grep blablablawhichdoesntexisteinen grep blablablawhichdoesntexistBefehl eingeben , wird immer mindestens eine Zeile angezeigt, die dem Befehl entspricht.
Dgonzalez
1
Fehlt das -tFlag, weil es einen Fehler anzeigt, ohne dass das -tFlag zum Beenden einer bestimmten Sitzung gesetzt ist. Usage: kill-session [-a] [-t target-session]
1rq3fea324wre
1
Früher war es sehr schmerzhafttmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
Foad
17

Dies würde alle Sitzungen auflisten und beenden:

tmux list-sessions | awk 'BEGIN{FS=":"}{print $1}' | xargs -n 1 tmux kill-session -t
Sebastian Dahlgren
quelle
13

Ich kann alle diese Prozesse mit dem Befehl abbrechen:

pkill -f tmux

Es beendet alle Prozesse (vollständige Liste) des übereinstimmenden Namens (tmux).


Hinweis für Neulinge: Auf diese Weise können Sie alle Prozesse anderer übereinstimmender Namen beenden.

JohnDoea
quelle