2015-04-03 32 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