如何从 CLI 终止所有 tmux 会话(或至少多个会话)?

149 process tmux

如何从 (Ubuntu) CLI 终止所有 tmux 会话(或至少多个会话)?

当我这样做时,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
Run Code Online (Sandbox Code Playgroud)

我怎么能一次杀死所有这些(或至少其中一些,选择性)?

dgo*_*lez 264

您可以使用tmux kill-server干净,优雅地杀死所有TMUX打开的会话(和服务器)。

如果您在要保留的 tmux 会话中,请使用tmux kill-session -a关闭所有其他会话。

要关闭特定会话,请使用tmux list-sessions标识要终止的会话,然后使用tmux kill-session -t targetSession终止该特定会话。

您也可以非常杀死所有TMUX过程pkill -f tmux

希望能帮助到你。

  • 如果你发出`ps aux | grep blablablawhichdoesntexist` 它将始终显示至少一行,对应于 `grep blablablawhichdoesntexist` 命令。 (3认同)
  • `ps辅助| `tmux kill-server` 之后的 grep tmux` 仍然显示 tmux 进程......与我的回答中的 `pkill -f tmux` 相同。你能解释一下吗?谢谢, (2认同)
  • @Benia你确定你不只是看到“grep tmux”进程(它包含在你原来问题的 ps 输出中)? (2认同)
  • 曾经是非常痛苦的`tmux ls | grep : | 切-d。-f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs 杀死` (2认同)

小智 24

我可以使用以下命令终止所有这些进程:

pkill -f tmux
Run Code Online (Sandbox Code Playgroud)

它会杀死匹配名称 (tmux) 的所有进程(完整列表)。


新手注意:这种方式可以帮助您杀死其他匹配名称的所有进程。


小智 22

这将列出并终止所有会话:

tmux list-sessions | awk 'BEGIN{FS=":"}{print $1}' | xargs -n 1 tmux kill-session -t
Run Code Online (Sandbox Code Playgroud)


use*_*ser 7

鉴于:

# tmux ls
session-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)
Run Code Online (Sandbox Code Playgroud)

这将杀死所有未由某人附加的会话:

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

参考:

  1. /sf/ask/728813151/
  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. 如何从 CLI 终止所有 tmux 会话(或至少多个会话)?