2015-04-03 5 views
2

Я использую htop, поэтому посмотрим, какие процессы занимают много памяти, поэтому я могу их убить. У меня много сеансов tmux и много подобных процессов. Как я могу проверить, в какой области tmux находится PID, поэтому я могу быть уверен, что я убиваю вещи, которые хочу убить?Найти tmux-сеанс, в котором PID принадлежит

ответ

6

Учитывая, что PID в следующей строке это номер целевой PID:

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

выше будет идентифицировать область, где PID работает. Выход будет состоять из двух строк. Первое число должно быть таким же, как PID, а второе (с знаком процента) - «tmux pane id». Пример вывода:

2345 %30 

Теперь вы можете использовать «tmux панели идентификатор», чтобы убить панель без «вручную» ищет его:

$ 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

Ответы, приведенные выше, дают вам раковины, запущенные в стеклах, вам не повезло, если вы захотите найти что-то в раковинах.

попробовать:

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

Это сумы дает вам все PIDS, а также файлы, которые открыли процессы. Я никогда не знаю, в какой сессии, окне, панели, прикрепленном или нет, у меня открыт файл, это помогает.

Я не пробовал это на другой машине, скажите, если у вас возникнут какие-либо проблемы.

lsof необходимо установить.

если вы просто хотите ИДП, pstree полезен, вы можете сценарий рынках сырья использовать его (он там уже комментировал)

enter image description here

Смежные вопросы