Как посмотреть запущенные процессы с помощью ps и top?

Управление системными процессами — одна из ключевых задач администратора Linux-системы. Знание того, какие процессы в данный момент запущены, сколько ресурсов они потребляют и как они взаимодействуют между собой, помогает следить за стабильностью и безопасностью системы. В этом контексте утилиты ps и top являются незаменимыми инструментами, позволяющими получить в реальном времени информацию о состоянии операционной системы.

Утилита ps: мгновенный снимок процессов

Команда ps (от английского process status) позволяет получить список процессов, которые работают в системе на данный момент. В отличие от top, она показывает статический снимок — то есть моментальное состояние процессов в момент вызова команды. Это удобно для создания отчётов или фиксации текущей нагрузки.

По умолчанию, если выполнить команду ps без параметров, вы увидите список процессов, принадлежащих текущему пользователю и запущенных в пределах текущего терминала. Вывод будет минимальным — обычно всего один-два процесса, включая сам ps.

Чтобы получить более подробный и полезный список, используют ключи. Наиболее часто применяемая комбинация — ps aux.

Разберём, что значат эти параметры:

  • a — показывает процессы всех пользователей, не только текущего;

  • u — выводит дополнительную информацию о владельце процесса и использовании ресурсов;

  • x — отображает процессы, не привязанные к терминалу (например, демоны).

Вывод ps aux содержит такие столбцы, как USER (имя владельца процесса), PID (идентификатор процесса), %CPU (процент использования CPU), %MEM (используемая память), VSZ (виртуальный размер), RSS (реальный размер), STAT (состояние), START (время запуска), TIME (использованное CPU-время) и COMMAND (запущенная команда).

Например, если вы хотите найти все процессы, связанные с веб-сервером Apache, можно использовать комбинацию:

perl
ps aux | grep apache

Таким образом можно быстро обнаружить, активен ли нужный сервис, и какие именно экземпляры процесса работают в системе.

Форматированный вывод и сортировка

Хотя ps aux удобна, более гибким способом считается использование параметров в формате BSD и UNIX-стандарта:

perl
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu

Эта команда выведет PID (идентификатор процесса), PPID (идентификатор родителя), CMD (команду запуска), а также процентное использование памяти и процессора, отсортированное по убыванию использования CPU.

Утилита top: динамическое наблюдение за системой

В отличие от ps, команда top предоставляет непрерывно обновляющийся список активных процессов. Это особенно полезно при мониторинге производительности системы в реальном времени.

После запуска top на экране появляется интерфейс, в верхней части которого отображается общая информация о системе: количество пользователей, средняя загрузка (load average), общее количество задач, загрузка процессора (разделённая по типам: пользовательские, системные, ожидание ввода-вывода и др.), использование памяти и swap.

Ниже располагается таблица с процессами. Каждый процесс представлен строкой с информацией: PID, пользователь, приоритет (PR), nice-значение (NI), объём используемой виртуальной и физической памяти (VIRT, RES), состояние (S), использование CPU и памяти в процентах, время работы и команда.

Команда top поддерживает интерактивное управление: во время работы программы можно нажимать клавиши для изменения сортировки, фильтрации и управления отображением. Например:

  • P — сортировка по загрузке CPU;

  • M — сортировка по памяти;

  • T — сортировка по времени работы;

  • k — отправить сигнал процессу (например, завершить его);

  • r — изменить приоритет (renice);

  • q — выход из top.

Такой способ позволяет не только наблюдать, но и оперативно реагировать на аномалии — например, завершить «зависший» процесс, потребляющий 100% CPU.

htop — расширенная версия top

Стоит упомянуть утилиту htop, которая является улучшенной версией top. Она не входит в базовый набор Linux и требует установки, но предоставляет более удобный интерфейс: отображение в виде цветных графиков, возможность навигации стрелками, интуитивное завершение процессов и сортировка по множеству параметров. Несмотря на то, что htop не является основной темой этой статьи, его стоит рассматривать как логическое продолжение работы с top.

Когда и что использовать: ps или top?

Выбор между ps и top зависит от ситуации. Если необходимо получить снимок текущего состояния и сохранить его в лог или проанализировать разово, лучше использовать ps. Он особенно удобен в скриптах автоматизации, когда требуется, например, убедиться, что сервис запущен, или подсчитать количество процессов.

Если задача — мониторинг в реальном времени, отслеживание роста потребления ресурсов или поиск «тяжёлых» процессов, тогда top будет предпочтительнее. Особенно если нужно немедленно принять меры — например, завершить процесс или изменить его приоритет.

Заключение

Команды ps и top — это два мощных инструмента, входящих в стандартный арсенал любого администратора или продвинутого пользователя Linux. ps предоставляет статичную, но легко фильтруемую и сохраняемую информацию о процессах. top, в свою очередь, обеспечивает интерактивное, динамически обновляемое окно в текущее состояние системы, позволяя быстро реагировать на изменения. Освоение обеих утилит делает работу с системой более прозрачной и управляемой, особенно при высоких нагрузках или отладке программ.

Comments are closed.