Ответ
Для диагностики и мониторинга в Linux есть несколько ключевых инструментов. Я обычно начинаю с ps и top, а при необходимости углубляюсь в /proc.
1. Основные команды для поиска и просмотра:
-
ps— моментальный снимок процессов. Чаще всего использую:# Показать все процессы в детальном формате ps aux # Найти процесс по имени ps aux | grep nginx # Показать процессы в виде дерева (с PID) ps -ef --forest -
pgrep&pkill— для поиска или отправки сигналов по имени:# Найти PID процесса sshd pgrep sshd # Показать имя процесса вместе с PID pgrep -l sshd -
top/htop— интерактивные мониторы процессов.htopудобнее из-за цветового оформления, вертикального/горизонтального скролла и управления с помощью мыши.
2. Детальная информация через /proc:
Каждому процессу соответствует директория /proc/<PID>/.
# Узнать команду запуска процесса 1234
cat /proc/1234/cmdline
# Просмотреть переменные окружения процесса
cat /proc/1234/environ | tr ' ' 'n'
# Посмотреть карту памяти
cat /proc/1234/maps
# Проверить открытые файловые дескрипторы
ls -la /proc/1234/fd/
3. Просмотр дерева процессов:
# Установить, если нет
# apt install psmisc # Debian/Ubuntu
# yum install psmisc # RHEL/CentOS
pstree -p
Практический сценарий: Если приложение «подвисает», я сначала нахожу его PID через ps aux | grep <app_name>, затем смотрю потребление ресурсов в top -p <PID>. Если подозреваю утечку памяти или проблемы с файлами, анализирую /proc/<PID>/status и /proc/<PID>/fd/.