Linux Centos 6,64
Я использую следующую команду для отображения htop в столбце команд
команда htop -u
Как сделать так, чтобы отображалась только конкретная команда, которую я выбираю из списка запущенных команд?
Спасибо
решение1
В 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
, могут фильтровать вывод и отображать конкретные команды напрямую (хотя текстовый фильтр может также выбрать имя команды, если оно случайно появляется в списке параметров другой команды).