2015-04-03 99 views
2

我使用htop,看看哪些进程占用大量内存,因此我可以杀死它们。我有很多tmux会话和很多类似的流程。我怎样才能检查PID是哪个tmux窗格,所以我可以确定我正在杀死我想杀的东西?查找PID属于的tmux会话

回答

6

鉴于PID在下面的行是目标PID号:

$ tmux list-panes -a -F "#{pane_pid} #{pane_id}" | grep ^PID 

上述将识别其中PID运行窗格。输出将是两个字符串。第一个数字应该与PID相同,第二个数字(百分号)是“tmux窗格ID”。示例输出:

2345 %30 

现在,您可以使用“TMUX窗格ID”杀窗格中没有为它“手动”搜索:

$ tmux kill-pane -t %30 


要完全回答你的问题,为了找到* TMUX会议*一个PID属于,该命令可用于:

$ tmux list-panes -a -F "#{pane_pid} #{session_name}" | grep ^PID 
# example output: 2345 development 

这里的另一种可能有用的“线”:

$ tmux list-panes -a -F "#{pane_pid} #{session_name}:#{window_index}:#{pane_index}" | grep ^PID 
# example output: 2345 development:2:0 

所有插值字符串(例如#{pane_pid})的描述可以在TMUX手册页在FORMATS部分进行查找。

2

上面的答案为您提供了在窗格中运行的shell的pid,如果您想要查找运行在shell中的某些内容,那么您将会运气不佳。

尝试:

https://gist.github.com/nkh/0dfa8bf165a53832a4b5b17ee0d7ab12

这纸条给你所有的PID,以及该进程已打开的文件。我永远不知道在哪个会话,窗口,窗格,附加或不,我有一个文件打开,这有助于。

我还没有在另一台机器上试过它,告诉我你是否遇到任何问题。

需要安装lsof。

如果你只是想的PID,pstree是有用的,你可以modity脚本使用它(它已经有评论)

enter image description here