Как отключить все сеансы tmux (или, по крайней мере, несколько сеансов) из CLI?

Как отключить все сеансы tmux (или, по крайней мере, несколько сеансов) из (Ubuntu) CLI?

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

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

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

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

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

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

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

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

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

pkill -f tmux

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


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

Это приведет к перечислению и уничтожению всех сеансов:

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

Дано:

# tmux lssession-0a: 1 windows (created Sat Dec  5 02:31:35 2020) [117x30]session-84: 1 windows (created Sat Dec  5 01:55:18 2020) [190x47] (attached)session-b3: 1 windows (created Sat Dec  5 03:23:44 2020) [94x13]session-b2: 1 windows (created Sat Dec  5 02:45:00 2020) [104x14]session-ae: 1 windows (created Sat Dec  5 01:55:18 2020) [190x47] (attached)

Это приведет к уничтожению всех сеансов, не присоединенных кем-либо:

tmux list-sessions | grep -v attached | awk 'BEGIN{FS=":"}{print $1}' | xargs -n 1 tmux kill-session -t || echo No sessions to kill

Рекомендации:

  1. https://stackoverflow.com/questions/10411616/grep-regex-not-containing-string
  2. https://unix.stackexchange.com/questions/33049/how-to-check-if-a-pipe-is-empty-and-run-a-command-on-the-data-if-it-isnt
  3. Как отключить все сеансы tmux (или, по крайней мере, несколько сеансов) из CLI?

Убить все сеансы, к которым никто не привязан (основываясь на этом ответе):

tmux ls | awk 'BEGIN{FS=":"}!/attached/{print $1}' | xargs -n 1 tmux kill-ses -t