30 полезных команд ps для мониторинга процессов Linux

30 полезных команд ps для мониторинга процессов Linux

Рубрики:

Linux, Мониторинг

Метки:

, , , , ,

Команды ps (от англ. process state — «состояние процессов») — встроенная программа для Unix-подобных операционных систем. В том числе она широко используется при администрировании ОС Linux. А именно — с целью мониторинга активных процессов по виртуальным файлам в файловой системе /proc. Потому мы советуем изучить особенности использования команд ps.

Содержание:

    1. Примеры использования команд ps
      1. №1 — все активные процессы оболочки
      2. Стандартные форматы вывода запущенных процессов в ps
        1. №2 — №2 — общий формат для Unix/Linux
        2. №3 — формат вывода от BSD
        3. №4 — расширенный вывод с помощью полноформатного листинга
      3. №5 — активные процессы пользователя
      4. №6 — активные процессы пользователя по RUID или имени
      5. №7 — активные процессы пользователя по EUID или имени
      6. №8 — процессы с правами root (RUID и EUID)
      7. №9 — активные процессы группы
      8. №10 — активные процессы по эффективному имени группы
      9. №11 — активные процессы по PID
      10. №12 — активные процессы по PPID
      11. №13 — сортировка активных процессов по PID
      12. №14 — отображение процессов по TTY
      13. №15 — отображение дерева процессов
      14. №16 — дерево процессов для конкретного процесса
      15. №17 — потоки процесса
      16. Особый формат вывода
        1. №18 — все спецификаторы формата
        2. №19 — PID, PPID, имя пользователя и команда процесса
        3. №20 — группа файловой системы, приоритет nice, время старта и выполнения процессов
        4. №21 — выведение имени процесса по PID
      17. №22 — родительские и дочерние процессы
      18. №23 — обнаружение PID разных экземпляров процесса
      19. №24 — отображение времени выполнения процесса
      20. Устранение проблем с производительностью Linux
        1. №26 — процессы, использующие максимум ОЗУ/ЦП
        2. №27 — завершение неуправляемых процессов
      21. Информация о безопасности
        1. №28 — контекст безопасности
        2. №29 — пользовательский формат данных о безопасности
      22. №30 — мониторинг в реальном времени с помощью Watch
    2. Выводы

Примеры использования команд ps

Стоит отметить, что утилита ps является одним из основных инструментов системного администратора, так как позволяет ориентироваться в том, что конкретно происходит с Linux. Потому мы решили специально написать статью с 30 полезными способами использования ps для мониторинга активных запущенных процессов в операционной системе GNU/Linux.

Важно: советуем изучить страницу MAN ps, чтобы научиться ориентироваться в названиях столбцов вывода утилиты.

№1 — все активные процессы оболочки

Стоит отметить, что использование команды ps без дополнительных опций и аргументов покажет все активные процессы используемой оболочки. Тогда ввод будет выглядеть предельно просто:

 

ps

Стандартные форматы вывода запущенных процессов в ps

Однако для удобства можно использовать дополнительные опции, которые изменят формат вывода данных.

№2 — общий формат для Unix/Linux

Например, можно попробовать использовать с командой ps опции  -A или -e. Это приведет к тому, что все активные процессы Linux будут выведены в формате по умолчанию для ОС Unix/Linux:

 

Или так:

 

ps

№3 — формат вывода от BSD

Безусловно, некоторым системным администраторам более удобно выводить результаты команды ps c аргументами au или axu. То есть — в формате, характерном для BSD.

 

Или вот так:

 

ps

№4 — расширенный вывод с помощью полноформатного листинга

Прежде всего остального, в отдельных случаях системному администратору нужно больше информации о запущенных процессах. В этом случае можно использовать с командой ps опции -f или даже -F:

 

Или следующим образом, чтобы листинг был еще более подробным:

 

ps

№5 — активные процессы пользователя

Конечно, часто полезно увидеть все процессы, которые относятся именно к вашей учетной записи. Сделать этом можно, если добавить к команде ps опцию -x:

№6 — активные процессы пользователя по RUID или имени

Также предусмотрен вывод данных об активных процессах по RUID или имени. Для этого достаточно добавить к команде ps опцию -U:

 

Или так:

 

Важно: RUID — это реальный идентификатор пользователя в UNIX-подобных ОС.

ps

№7 — активные процессы пользователя по EUID или имени

Также искать процессы можно по значению EUID пользователя или его имени. Стоит отметить, что для этого только нужно добавить к команде ps опцию -u.

 

Или так:

 

Важно: EUID — это эффективный идентификатор пользователя в UNIX-подобных ОС.

№8 — процессы с правами root (RUID и EUID)

Стоит отметить, что часто возникает необходимость выяснить, какие процессы выполняются с правами root. К счастью, проверить это с командой ps очень просто как по реальному (RUID), так и по эффективному (EUID) идентификаторам. Потому просто добавьте к команде ps с опциями -U и -u соответствующий аргумент:

 

ps

№9 — активные процессы группы

Безусловно, порой приходится иметь дело с процессами, запущенными определенной группой пользователей. Для этого достаточно дополнить ввод именем или RGID этой группы после опции -G. Конечно, выглядеть это будет следующим образом:

Либо так:

 

ps

№10 — активные процессы по эффективному имени группы

Помимо всего прочего, есть возможность вывести процессы, относящиеся к определенному эффективному имени группы либо сеанса. Для этого следует использовать команду ps с опцией -g:

№11 — активные процессы по PID

Также разработчики предусмотрели выведение запущенных процессов по PID. Для этого стоит использовать опцию -p:

 

Важно: PID (от англ. Process ID) — это идентификатор процесса в операционной системе Linux.

ps

№12 — активные процессы по PPID

Также в случае необходимости мониторинга процессов по PPID можно использовать опцию –ppid:

 

Важно: PPID (от англ. Parent Process ID) — это идентификатор родительского процесса по отношению к текущему процессу в операционной системе Linux.

ps

№13 — сортировка активных процессов по PID

Стоит отметить, что разработчики утилиты предусмотрели помимо всего прочего сортировку вывода конкретных активных процессов по их PID. Для этого их идентификаторы достаточно перечислить через запятую в качестве аргумента команды ps с опцией -p:

 

ps

№14 — отображение процессов по TTY

Помимо всего прочего, предусмотрено и выведение запущенных процессов по указанному TTY. В частности, для этого нужно ввести команду ps с опцией -t и TTY в качестве аргумента:

 

 

 

Важно: TTY — это имя терминала, через который запускается тот или иной процесс в UNIX-подобных ОС, включая Linux.

ps

№15 — отображение дерева процессов

В случае, если вам нужно увидеть дерево процессов, следует добавить к команде ps параметр –forest:

 

Важно: дерево процессов — это схема взаимосвязи между процессами, которая показывает для каждого запущенного процесса родительский процесс в системе (если родительские процессы не являются активными, то вместо них указывается init либо systemd).

ps

№16 — дерево процессов для конкретного процесса

Безусловно, выведение дерева процессов было бы не таким полезным, если бы нельзя было показать его по отношению к конкретному заданному процессу. Сделать это можно, добавив в качестве аргумента команды имя процесса:

 

Либо так:

 

ps

№17 — потоки процесса

Также может возникнуть необходимость отобразить потоки процесса LWP и NLWP. В этом случае к команде ps стоит добавить опцию -L:

 

Важно: LWP — это легковесный процесс, а NLWP — число легковесных процессов.

ps

Особый формат вывода

Также команда ps с опцией -o либо -format  позволяет создать свой особый формат вывода активных процессов.

№18 — все спецификаторы формата

Прежде всего, отобразить все спецификаторы формата позволит флаг флаг L.

№19 — PID, PPID, имя пользователя и команда процесса

Помимо всего прочего, бывает удобно собрать вместе на одном экране только PID, PPID, имя пользователя и команду запущенного процесса. Сделать это поможет такая комбинация аргументов, перечисленных через запятую после команды ps:

 

ps

№20 — группа файловой системы, приоритет nice, время старта и выполнения процессов

Стоит отметить и другой интересный пример пользовательского формата вывода будет сочетать следующие данные о процессах:

  • группу файловой системы;
  • приоритет nice;
  • время старта процесса;
  • актуальное время выполнения процесса.

Например, сделать это можно с помощью следующего набора аргументов, перечисленных через запятую:

 

ps

№21 — выведение имени процесса по PID

Наверное, довольно часто возникает потребность узнать имя процесса, когда известен лишь его PID. В этом случае поможет следующий аргумент команды:

 

ps

№22 — родительские и дочерние процессы

Конечно же, введение имени процесса с флагом -C покажет, какие процессы являются родительскими и дочерними к исходному процессу.

 

ps

№23 — обнаружение PID разных экземпляров процесса

Бывает, что нужно вывести PID всех запущенных экземпляров процесса. Как правило, такие данные требуются для скриптов, берущих информацию PID из выходного файла std. Сделать это можно следующим образом:

 

ps

№24 — отображение времени выполнения процесса

Кроме того, бывает полезным узнать, как долго выполняется тот или иной процесс. Для этого достаточно воспользоваться следующим набором опций и аргументов:

 

Важно: время работы процесса sshd указано в минутах и секундах.

ps

Устранение проблем с производительностью Linux

Случается, что быстродействие системы оставлять лучшего. К счастью, команда ps в Linux может предложить несколько вариантов решения подобной проблемы.

№26 — процессы, использующие максимум ОЗУ/ЦП

Наверное, полезным бывает обнаружить все процессы, использующие максимальное количество памяти/ЦП в Linux. Например, получить информацию по использованию ОЗУ поможет следующий набор опций и аргументов:

 

С другой стороны, так будет выглядеть ввод, если вас интересует использование вычислительных мощностей процессора:

 

ps

№27 — завершение неуправляемых процессов

Вероятно, вам придется завершать работу процессов в Linux, которые потребляют чрезмерные объемы памяти и слишком сильно загружают процессор. Прежде всего, нужно будет получить PID процесса или приложения:

 

Конечно, завершить процесс поможет команда kill:

Информация о безопасности

Безусловно, в наше время жизненно важно обеспечивать безопасность системы от внешних угроз.

№28 — контекст безопасности

Стоит отметить, что вывести на экран контекст безопасности поможет опция -M или –context (подходит для системы принудительного контроля доступа SELinux):

 

Или так:

 

ps

№29 — пользовательский формат данных о безопасности

Конечно же, есть возможность получать на экран информацию о безопасности в собственном, пользовательском формате. Для этого можно перечислить следующие аргументы через запятую:

№30 — мониторинг в реальном времени с помощью Watch

Стоит отметить, что команда ps отображает информации, актуальную на момент введения. Утилита watch позволит получать информацию по одному и тому же запросу через указанные промежутки времени. Таким образом можно осуществлять мониторинг процессов в реальном времени. Например, следующий набор команд позволит делать это с интервалом в 1 секунду:

 

ps

Важно: для просмотра часто обновляемого вывода можно применять htop, top и glances (последние два — инструмент мониторинга производительности Linux).

Выводы

Как видите, команда ps является крайне мощным и универсальным инструментом для мониторинга процессов и работы с ними. Потому мы надеемся, что наша статья поможет вам получить несколько полезных практических навыков, необходимых каждому системному администратору Linux.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях!

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Мониторинг

Метки:

, , , , ,

Больше похожих постов

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики
Меню