Comment tuer toutes les sessions tmux (ou au moins plusieurs sessions) à partir de la CLI?

94

Comment tuer toutes les sessions tmux (ou au moins plusieurs sessions) à partir de la CLI (Ubuntu)?

Quand je vois, ps aux | grep tmuxje vois 3 processus:

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

Comment pourrais-je tuer tous ces éléments en même temps (ou au moins certains d'entre eux, la sélectivité)?

JohnDoea
la source

Réponses:

170

Vous pouvez utiliser tmux kill-serverpour tuer proprement et gracieusement toutes les sessions ouvertes tmux (et le serveur).

Si vous êtes dans une session tmux que vous souhaitez conserver, utilisez tmux kill-session -apour fermer toutes les autres sessions.

Pour fermer une session spécifique, utilisez tmux list-sessionspour identifier la session que vous souhaitez tuer, puis tmux kill-session -t targetSessionpour tuer cette session spécifique.

Vous pouvez aussi grossièrement tuer tous les processus tmux avec pkill -f tmux.

J'espère que ça aide.

dgonzalez
la source
1
ps aux | grep tmuxafter tmux kill-servermontre toujours un processus tmux ... Même chose pkill -f tmuxque dans ma réponse. Pouvez-vous expliquer cela? Merci,
JohnDoea
1
@Benia êtes-vous sûr de ne pas voir que le grep tmuxprocessus (qui est inclus dans la sortie ps de votre question initiale)?
Steeldriver
2
Si vous le lancez, ps aux | grep blablablawhichdoesntexistil affichera toujours au moins une ligne, correspondant à la grep blablablawhichdoesntexistcommande.
dgonzalez
1
Il vous manque un -tindicateur, car il indique une erreur sans -tqu'un indicateur ne soit défini pour tuer une session particulière. Usage: kill-session [-a] [-t target-session]
1rq3fea324wre
1
C'était très douloureuxtmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
Foad
17

Ceci listerait et tuerait toutes les sessions:

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

Je peux tuer tous ces processus avec la commande:

pkill -f tmux

Il tue tous les processus (liste complète) du nom correspondant (tmux).


Note pour les nouveaux arrivants: cette façon pourrait vous aider à tuer tous les processus des autres noms correspondants.

JohnDoea
la source