Как найти информацию о процессе в Linux?

«Как найти информацию о процессе в Linux?» — вопрос из категории Linux, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для диагностики и мониторинга в 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/.