¿Cómo matar todas las sesiones de tmux (o al menos varias sesiones) desde la CLI?

94

¿Cómo matar todas las sesiones de tmux (o al menos varias sesiones) desde la CLI (Ubuntu)?

Cuando lo hago ps aux | grep tmux, veo 3 procesos:

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

¿Cómo podría matar todo esto a la vez (o al menos algunos de ellos, selectividad)?

JohnDoea
fuente

Respuestas:

170

Puede usar tmux kill-serverpara eliminar de forma limpia y elegante todas las sesiones abiertas de tmux (y el servidor).

Si está dentro de una sesión tmux que le gustaría mantener, use tmux kill-session -apara cerrar todas las demás sesiones.

Para cerrar una sesión específica, use tmux list-sessionspara identificar la sesión que desea matar y luego use tmux kill-session -t targetSessionpara matar esa sesión específica.

También puede matar groseramente todos los procesos tmux con pkill -f tmux.

Espero eso ayude.

dgonzalez
fuente
1
ps aux | grep tmuxdespués tmux kill-servertodavía muestra un proceso tmux ... Lo mismo ocurre con pkill -f tmuxmi respuesta. ¿Puede explicar esto? Gracias,
JohnDoea
1
@Benia, ¿estás seguro de que no solo estás viendo el grep tmuxproceso (que se incluye en la salida ps de tu pregunta original)?
Steeldriver
2
Si lo emite ps aux | grep blablablawhichdoesntexist, siempre mostrará al menos una línea, correspondiente al grep blablablawhichdoesntexistcomando.
dgonzalez
1
¿Le falta la -tbandera, porque muestra un error sin la -tbandera establecida para matar una sesión en particular? Usage: kill-session [-a] [-t target-session]
1rq3fea324wre
1
Solía ​​ser muy dolorosotmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
Foad
17

Esto enumeraría y eliminaría todas las sesiones:

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

Puedo matar todos estos procesos con el comando:

pkill -f tmux

Mata todos los procesos (lista completa) del nombre coincidente (tmux).


Nota para los recién llegados: esta forma podría servirle para eliminar todo el proceso de otros nombres coincidentes.

JohnDoea
fuente