当前位置: 首页>>技术教程>>正文


process – 如何从 CLI 终止所有 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

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

最佳回答

您可以使用 tmux kill-server 干净而优雅地终止所有 tmux 打开会话(和服务器)。

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

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

您也可以使用 pkill -f tmux 彻底杀死所有 tmux 进程。

希望能帮助到你。

次佳回答

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

pkill -f tmux

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


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

第三种回答

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

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

第四种回答

鉴于:

# 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)

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

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. How to kill all tmux sessions (or at least multiple sessions) from the CLI?

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11987.html,未经允许,请勿转载。