问题描述
如何从 (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
参考:
-
https://stackoverflow.com/questions/10411616/grep-regex-not-containing-string
-
How to kill all tmux sessions (or at least multiple sessions) from the CLI?