Существуют ли относительно простые варианты с top для отслеживания определенного процесса?
В идеале, идентифицируя процесс по человечески понятному значению? например chrome
или java
.
Другими словами, я хочу просмотреть всю типичную информацию, которую предоставляет топ, но результаты должны быть отфильтрованы по предоставленным параметрам, т.е. «хром» или «Java»
top | grep chrome
?ps -x | chrome
чтобы получить pid (пусть pid показан2034
), а затемtop | grep 2034
top | grep chrome
работал отлично - спасибо!ps -x | process_name
для получения PID, когда я снова запускал процесс, PID был другим, и поэтому Оригинальный PID не будет идентифицировать это.Ответы:
Вы можете просто использовать
grep
:Запустите следующую команду, чтобы получить желаемый вывод (ex-chrome):
Здесь мы используем
grep
с конвейерами,|
поэтомуtop
&grep
запустить параллельно;top
вывод данныхgrep
(в качестве ввода) иgrep chrome
фильтрация совпадающих строкchrome
доtop
остановки.источник
top
только и OP хотят фильтровать процесс на основеtop
.sleep 10 & top | grep sleep
Из моего другого ответа здесь , вы могли бы сделать что-то вроде,
источник
top -p `pgrep "java"`
дает мне следующую ошибку в оболочке bashtop: -p requires argument
. top -ppgrep -d ',' "apache2"
сработал для меня, но я не совсем понял, что делает команда - это способ подачи нескольких аргументов в начало?pid
запятую списка, отделенную для работы.Объяснение:
top -p pid1,pid2
: показать информацию о нескольких процессах, pid должен быть разделен,
pgrep -d "," java
: печатать pids всех java-программ, pids по умолчанию разделены новой строкой. используйте,-d ","
чтобы отделить его,,
как того требует верх.Если вы видите ошибку как
top: -p argument missing
, это означает, что Java-программа не запущена, т.е. pgrep не имеет выходных данных.источник
top -p
pgrep "java" `` только. благодарю вас.pgrep
код выхода:pids="$(pgrep -d, java)" && top -p "$pids"
В OpenBSD
top
просто нажмите gи введите имя команды, по которой вы хотите выполнить фильтрацию.В
top
на Ubuntu , например, нажмите oи введите , например ,COMMAND=chrome
чтобы показывать только записи изCOMMAND
столбца, равныchrome
.В Linux, в которых используется та же
top
реализация, что и в Ubuntu, прочитайте раздел ФИЛЬТРАЦИЯ в окне вtop
руководстве.источник
Были даны и другие хорошие ответы, но некоторое время назад я написал сценарий, который назвал ptop и который хорошо мне подходит:
Это поддерживает указание нескольких имен процессов (например
ptop bash chrome
) и предоставляет более приятное сообщение об ошибке в случае, если нет ни одного из процессов с запущенными указанными именами.источник
Если вы хотите остаться в
top
курсе и держать все остальные процессы в поле зрения контекста, вы можете нажатьL
для поиска вашего процесса:Это выделит любой процесс
chrome
в названии и отобразит его. Используйте,&
чтобы перейти к следующему матчу.Вы можете нажать
c
для переключения между отображением имени процесса и полной команды.источник
man top | less +/5d
Вы также можете использовать фильтр сверху, чтобы изолировать определенные процессы. Нажмите «O», чтобы вызвать подсказку фильтра. Затем введите фильтр в формате FIELD = значение. Например, чтобы отфильтровать все процессы tmux, используйте:
Используйте '=' для сброса фильтров. См. Раздел «ФИЛЬТРИРОВАНИЕ» на главной странице руководства.
источник