Рубрики
Вольер с пингвинами

Bash: top по имени процесса

В данной заметке будет рассмотрен скрипт для вывода информации по имени процесса в диспетчере процессов top

Диспетчер процессов top имеет возможность выводить данные по конкретным процессам при указании их идентификаторов (PID), что не является удобным для работы рядового пользователя. Данный скрипт определяет PID процессов по заданному имени и вызывает top только для них.

#!/bin/bash

if [ -n "$1" ] 
then
    PIDs=$(pgrep  -d ',' $1) 
    if [ -n "$PIDs" ] 
    then
        top -p$PIDs
    else
        echo "Процесс $1 не найден"
    fi
else
    top
fi

В конструкции if [ -n «$1» ] флаг -n проверяет что строка имеет не нулевую длину и необходимо искать идентификаторы процесса, иначе будет запущен обычный top.

Команда pgrep $1 выводит номера процессов в столбик, а для top необходимо перечисление через запятую без пробелов, для этого применим флаг -d и зададим в качестве разделителя запятую.

Проведем проверку длинны строки для того что бы убедиться, что процесс с таким именем есть в системе.

В случае наличия такого процесса(-ов) вызовем команду top с флагом -p, который как было сказано ранее принимает идентификаторы в формате -p1,2,3

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.