Как убить все сеансы tmux (или хотя бы несколько сеансов) из CLI?

94

Как убить все сеансы tmux (или хотя бы несколько сеансов) из (Ubuntu) CLI?

Когда я ps aux | grep tmuxвижу 3 процесса:

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

Как я мог убить все это сразу (или, по крайней мере, некоторые из них, избирательность)?

JohnDoea
источник

Ответы:

170

Вы можете использовать tmux kill-serverдля аккуратного и изящного уничтожения всех открытых сеансов tmux (и сервера).

Если вы находитесь в сеансе tmux, который хотите сохранить, используйте, tmux kill-session -aчтобы закрыть все остальные сеансы.

Чтобы закрыть конкретный сеанс, используйте tmux list-sessionsдля определения сеанса, который вы хотите убить, а затем используйте tmux kill-session -t targetSessionдля завершения этого конкретного сеанса.

Также вы можете грубо убить все процессы tmux с pkill -f tmux.

Надеюсь, это поможет.

dgonzalez
источник
1
ps aux | grep tmuxпосле того, как по- tmux kill-serverпрежнему показывает процесс tmux ... То же самое, pkill -f tmuxчто и в моем ответе. Вы можете это объяснить? Спасибо,
JohnDoea
1
@ Benia Вы уверены, что не просто видите grep tmuxпроцесс (который включен в вывод ps вашего исходного вопроса)?
SteelDriver
2
Если вы выполните команду, ps aux | grep blablablawhichdoesntexistона всегда покажет хотя бы одну строку, соответствующую grep blablablawhichdoesntexistкоманде.
dgonzalez
1
Вы пропустили -tфлаг, потому что он показывает ошибку без -tфлага, установленного для убийства определенного сеанса. Usage: kill-session [-a] [-t target-session]
1rq3fea324wre
1
Раньше было очень больноtmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
Foad
17

Это будет перечислять и убивать все сессии:

tmux list-sessions | awk 'BEGIN{FS=":"}{print $1}' | xargs -n 1 tmux kill-session -t
Себастьян Дальгрен
источник
13

Я могу убить все эти процессы с помощью команды:

pkill -f tmux

Он убивает все процессы (полный список) с соответствующим именем (tmux).


Примечание для новичков: этот способ может помочь вам уничтожить весь процесс других подходящих имен.

JohnDoea
источник