执行
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
我怎么能一次杀死所有这些(或至少选择性地杀死其中一些?)?
#1 楼
您可以使用tmux kill-server
干净优雅地杀死所有tmux打开的会话(和服务器)。如果您要保留在tmux会话中,请使用
tmux kill-session -a
关闭所有其他会话。要关闭特定会话,请使用
tmux list-sessions
标识要终止的会话,然后使用tmux kill-session -t targetSession
终止该特定会话。 。希望对您有所帮助。
#2 楼
我可以使用以下命令杀死所有这些进程:pkill -f tmux
它杀死具有匹配名称(tmux)的所有进程(完整列表)。
新手注意:这种方法可以帮助您杀死其他匹配名称的所有过程。
#3 楼
这将列出并杀死所有会话:tmux list-sessions | awk 'BEGIN{FS=":"}{print }' | xargs -n 1 tmux kill-session -t
#4 楼
给出:# 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 }' | xargs -n 1 tmux kill-session -t || echo No sessions to kill
参考文献:
https://stackoverflow.com/questions/ 10411616 / grep-regex-not- contains-string
https://unix.stackexchange.com/questions/33049/how-to-check-if-a-pipe-is-empty-and-run-a数据是否存在命令
如何从CLI终止所有tmux会话(或至少多个会话)?
评论
ps aux | tmux kill-server之后的grep tmux仍然显示tmux进程... pkill -f tmux与我的回答相同。你能解释一下吗?谢谢,
–user423047
17年5月5日在6:20
@Benia您确定您不只是看到grep tmux进程(包含在原始问题的ps输出中)吗?
–钢驾驶员
17年5月5日在13:45
如果发布ps aux | grep blablablawhichdoesntexist它将始终显示至少一行,对应于grep blablablathatdoesntexist命令。
– dgonzalez
17年5月5日在14:14
您是否缺少-t标志,因为没有设置-t标志来终止特定会话,它会显示错误。用法:kill-session [-a] [-t target-session]
– 1rq3fea324wre
17年11月1日在3:03
tmux ls曾经很痛苦grep:|切-d。 -f1 | awk'{print substr($ 1,0,length($ 1)-1)}'| | | xargs杀死
–地板
18年2月1日在14:35