找到PID所属的tmux会话

And*_*rew 6 pid htop tmux

我正在使用htop,所以看看哪些进程占用了大量内存,所以我可以杀死它们.我有很多tmux会话和许多类似的过程.如何查看PID所在的tmux窗格,以便我可以确定我要杀死我要杀的东西?

小智 10

鉴于PID以下行是目标pid号:

$ tmux list-panes -a -F "#{pane_pid} #{pane_id}" | grep ^PID
Run Code Online (Sandbox Code Playgroud)

以上将标识PID正在运行的窗格.输出将是两个字符串.第一个数字应该相同,PID第二个数字(百分号)是"tmux pane id".示例输出:

2345 %30
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用"tmux pane id"来杀死窗格,而无需"手动"搜索它:

$ tmux kill-pane -t %30
Run Code Online (Sandbox Code Playgroud)


要完全回答您的问题,为了找到PID所属的*tmux会话*,可以使用以下命令:

$ tmux list-panes -a -F "#{pane_pid} #{session_name}" | grep ^PID
# example output: 2345 development
Run Code Online (Sandbox Code Playgroud)

这是另一个可能有用的"线":

$ tmux list-panes -a -F "#{pane_pid} #{session_name}:#{window_index}:#{pane_index}" | grep ^PID
# example output: 2345 development:2:0
Run Code Online (Sandbox Code Playgroud)

#{pane_pid}可以在本FORMATS节的tmux手册页中查找所有插值字符串(示例)的描述.

  • 我糊涂了。接受的答案 + 赞成表明这是有效的。然而,至少在 tmux 2.8 上,`#{pane_pid}` 是“窗格中第一个进程的 PID”,它将成为所有东西的 shell(即 `bash`),除非有一种方法可以直接在没有外壳的窗格。 (4认同)