Linux Centos 6,64

Я использую следующую команду для отображения htop в столбце команды

команда htop -u

Как мне сделать так, чтобы он показывал только определенную команду, которую я выбираю из списка запущенных команд?

Спасибо

1 ответ1

2

В htop -u параметр является именем пользователя, а не командой.

Единственный параметр для мониторинга конкретной команды - это -p , но для этого требуется PID, поэтому имя команды должно быть сначала преобразовано в PID, что будет делать pidof .

Если выполняется более одного экземпляра команды, pidof возвращает список PID, разделенных пробелами, но опция -p принимает список, разделенный запятыми, поэтому вывод pidof должен быть преобразован:

htop -p $(pidof command | sed 's/ /,/g')

Это лучше всего включить в функцию или скрипт, в этом случае команда будет:

htop -p $(pidof "$1" | sed 's/ /,/g')

Хотя я сначала думаю о sed для пакетного редактирования, в этом случае можно использовать более простую команду tr :

htop -p $(pidof "$1" | tr ' ' ',')

Обратите внимание, что системные мониторы с графическим интерфейсом, такие как qps и ksysguard , могут фильтровать выходные данные и отображать конкретные команды напрямую (хотя текстовый фильтр может также подобрать имя команды, если оно появляется в списке параметров другой команды).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .