Como matar todas as sessões tmux (ou pelo menos várias sessões) da CLI?

94

Como matar todas as sessões tmux (ou pelo menos várias sessões) da CLI (Ubuntu)?

Quando ps aux | grep tmuxvejo três processos:

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

Como eu poderia matar tudo isso de uma só vez (ou pelo menos alguns deles, seletividade)?

JohnDoea
fonte

Respostas:

169

Você pode usar tmux kill-serverpara matar de forma limpa e fácil todas as sessões abertas do tmux (e servidor).

Se você estiver em uma sessão do tmux que gostaria de manter, use tmux kill-session -apara fechar todas as outras sessões.

Para fechar uma sessão específica, use tmux list-sessionspara identificar a sessão que você deseja matar e use tmux kill-session -t targetSessionpara matar essa sessão específica.

Também você pode grosseiramente matar todos os processos tmux com pkill -f tmux.

Espero que ajude.

dgonzalez
fonte
1
ps aux | grep tmuxdepois tmux kill-serverainda mostra um processo tmux ... O mesmo acontece com a pkill -f tmuxminha resposta. Você pode explicar isso? Obrigado,
JohnDoea 5/17
1
@Benia tem certeza de que não está apenas vendo o grep tmuxprocesso (que está incluído na saída ps da sua pergunta original)?
steeldriver
2
Se você emitir ps aux | grep blablablawhichdoesntexist, sempre mostrará pelo menos uma linha, correspondente ao grep blablablawhichdoesntexistcomando.
precisa saber é o seguinte
1
Está faltando -tsinalizador, porque mostra erro sem -tsinalizador definido para matar uma sessão específica. Usage: kill-session [-a] [-t target-session]
precisa saber é o seguinte
1
Ela costumava ser muito dolorosotmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
Foad
17

Isso listaria e mataria todas as sessões:

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

Eu posso matar todos esses processos com o comando:

pkill -f tmux

Ele mata todos os processos (lista completa) do nome correspondente (tmux).


Nota para os recém-chegados: dessa maneira, você poderá matar todo o processo de outros nomes correspondentes.

JohnDoea
fonte