Содержание статьи

В Linux каждый процесс имеет уникальный идентификатор (PID) и принадлежит определённому пользователю. Контроль за активными процессами помогает выявлять нагрузку на систему, отслеживать критические сервисы и предотвращать конфликты между приложениями. Для администрирования важно знать команды, которые предоставляют детализированную информацию о состоянии процессов.
Команда ps позволяет вывести список процессов с указанием PID, используемой памяти и CPU. С помощью ключей -aux или -ef можно получить расширенную информацию обо всех процессах, включая скрытые и системные. Это помогает быстро находить зависшие процессы или процессы с аномально высоким потреблением ресурсов.
Интерактивные утилиты top и htop предоставляют динамическое отображение состояния системы. Они показывают использование CPU, памяти и время работы процессов в реальном времени. htop дополнительно позволяет фильтровать процессы по пользователю и завершать их прямо из интерфейса.
Для быстрого поиска конкретного процесса подходят pgrep и pidof. Они возвращают PID процесса по имени, что упрощает автоматизацию задач мониторинга и управления. В комбинации с командой kill это позволяет завершить проблемные процессы без полного вмешательства в систему.
Просмотр всех процессов с помощью команды ps

Примеры ключевых вариантов:
- ps aux – показывает процессы с указанием использования памяти и CPU в процентном соотношении.
- ps -u имя_пользователя – отображает только процессы конкретного пользователя.
- ps -ef | grep nginx – поиск всех процессов, связанных с Nginx.
- ps aux | grep 1234 – проверка конкретного PID для диагностики проблемного процесса.
Команда ps также поддерживает сортировку по различным столбцам с помощью ключа —sort:
- ps aux —sort=-%cpu – отображение процессов с максимальной нагрузкой на CPU.
Использование ps в комбинации с фильтрацией и сортировкой позволяет быстро выявлять зависшие процессы, аномальное потребление ресурсов и оптимизировать управление системой.
Использование top и htop для мониторинга в реальном времени
Команда top отображает текущие процессы в динамическом режиме, обновляя информацию каждые несколько секунд. Она показывает PID, имя процесса, использование CPU и памяти, время работы и приоритет. Управление осуществляется с помощью горячих клавиш: k для завершения процесса, r для изменения приоритета, u для фильтрации по пользователю.
Утилита htop предоставляет более удобный интерфейс с цветовой подсветкой и возможностью навигации курсором. Основные возможности:
- Фильтрация процессов по имени или пользователю с помощью F3 и F4.
- Завершение процессов через F9 с выбором сигнала.
- Сортировка по CPU, памяти, времени работы или PID с помощью F6.
- Просмотр дерева процессов с F5, что облегчает выявление дочерних процессов.
Для анализа нагрузки системы рекомендуется запускать top или htop с правами суперпользователя, чтобы видеть все процессы, включая системные. Комбинация фильтрации и сортировки позволяет быстро выявлять процессы с аномальным потреблением ресурсов и контролировать состояние ключевых сервисов.
Фильтрация процессов по имени или пользователю

Для поиска конкретного процесса по имени используется команда pgrep. Она возвращает PID всех процессов, соответствующих заданной строке:
- pgrep -u root sshd – поиск процессов sshd, запущенных пользователем root.
Команда ps также позволяет фильтровать процессы с помощью ключа -u или комбинации с grep:
- ps -u имя_пользователя – отображение всех процессов конкретного пользователя.
- ps aux | grep chrome – поиск всех процессов, связанных с браузером Chrome.
Использование фильтрации ускоряет диагностику проблем с ресурсами и позволяет быстро выявлять процессы, влияющие на работу системы. Для скриптов мониторинга рекомендуется использовать pgrep, так как она возвращает только PID и поддерживает точные и регулярные совпадения.
Проверка процессов с помощью команды pidof и pgrep
Команда pidof позволяет быстро получить PID запущенного процесса по имени. Она подходит для одиночных процессов и скриптов автоматизации:
- pidof nginx – возвращает PID всех экземпляров Nginx.
Команда pgrep обеспечивает более гибкий поиск и поддерживает фильтрацию по имени, пользователю и другим параметрам:
- pgrep sshd – список PID всех процессов SSH.
- pgrep -u root apache2 – процессы Apache, запущенные пользователем root.
- pgrep -f «python script.py» – поиск процессов по полному командному строковому аргументу.
Для автоматизации задач контроля состояния сервисов рекомендуется использовать pidof для быстрого получения PID одиночного процесса и pgrep для сложных фильтров, когда требуется учитывать пользователя, аргументы командной строки или несколько экземпляров одного приложения.
Отслеживание ресурсов, потребляемых процессами

| USER | PID | %CPU | %MEM | VSZ | RSS | COMMAND |
|---|---|---|---|---|---|---|
| root | 1023 | 15.2 | 3.8 | 105000 | 7800 | nginx |
| mysql | 2045 | 8.5 | 12.4 | 250000 | 31000 | mysqld |
| user | 3056 | 3.2 | 1.1 | 75000 | 2000 | python script.py |
- ps aux —sort=-%cpu – процессы с максимальной загрузкой CPU.
- ps aux —sort=-%mem – процессы с наибольшим потреблением памяти.
Регулярное отслеживание ресурсов помогает предотвращать замедление системы, своевременно выявлять утечки памяти и планировать перезапуск критических сервисов.
Принудительное завершение процессов через kill и killall

Команда kill используется для отправки сигналов конкретному процессу по его PID. Наиболее часто применяется сигнал SIGKILL (номер 9), который немедленно завершает процесс без возможности перехвата. Пример: kill -9 1234, где 1234 – PID процесса.
Для завершения нескольких процессов по имени используют killall. Она отправляет сигнал всем процессам с указанным именем. Например, killall -9 firefox завершит все процессы Firefox.
Чтобы определить PID перед завершением, применяют ps или pgrep. Например, pgrep -l nginx выведет список PID процессов Nginx с их именами.
В системах с ограничениями прав суперпользователя использование sudo может быть обязательным. Пример: sudo kill -9 4321 завершит процесс, запущенный другим пользователем.
Для безопасного завершения сначала рекомендуется отправлять сигнал SIGTERM (номер 15), позволяющий процессу корректно освободить ресурсы: kill -15 1234. Только при его игнорировании применяют SIGKILL.
Комбинация ps, grep и kill удобна для точечного завершения процессов. Например: kill -9 $(ps aux | grep process_name | awk '{print $2}') завершает все найденные процессы с именем process_name.
Использование kill и killall эффективно для управления зависшими процессами, автоматизации через скрипты и администрирования серверов с высокой нагрузкой.
Вопрос-ответ:
Как вывести список всех запущенных процессов в Linux?
Для просмотра всех процессов используют команду ps aux, которая показывает PID, пользователя, использованную память и статус каждого процесса. Для более наглядного отображения удобно применять top или htop, где процессы обновляются в реальном времени.
Как найти процесс по имени?
Можно использовать команду pgrep, например, pgrep -l nginx покажет PID и имя всех процессов Nginx. Также допустимо применять ps aux | grep имя_процесса для поиска процессов через фильтрацию вывода.
Как определить, какой процесс потребляет много ресурсов?
Команда top выводит список процессов с сортировкой по использованию CPU или памяти. Для более удобного мониторинга можно использовать htop, где ресурсоемкие процессы подсвечиваются и сортируются интерактивно.
Можно ли ограничить доступ к процессам других пользователей?
Да, стандартные пользователи видят только свои процессы. Для просмотра или завершения процессов других пользователей требуется права суперпользователя. Пример: sudo ps aux покажет все процессы, а sudo kill -9 PID позволит завершить чужой процесс.
Как отследить процессы, которые постоянно перезапускаются?
Для обнаружения таких процессов удобно использовать ps aux --sort=start_time или journalctl -u имя_сервиса для систем с systemd. Это позволяет увидеть частоту запуска и определить процессы, вызывающие высокую нагрузку или ошибки.
Как отследить процессы, которые используют много памяти или процессорного времени?
Для анализа нагрузки на систему применяют команду top, которая показывает список процессов с текущим использованием CPU и памяти. В top процессы можно сортировать по колонкам %CPU или %MEM, чтобы быстро определить ресурсоемкие. Для более детального анализа используют ps aux --sort=-%mem или ps aux --sort=-%cpu, что выводит процессы с наибольшим потреблением памяти или процессора. Эти команды позволяют выявить процессы, которые могут замедлять работу системы, и при необходимости завершить их через kill PID или killall имя_процесса.
