Как найти запущенный процесс в Linux?

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

Ответ

В Linux есть несколько основных команд для поиска запущенных процессов.

1. Использование ps и grep (классический способ):

# Поиск по имени процесса
ps aux | grep nginx
# Более точный поиск (исключает сам процесс grep)
ps aux | grep -v grep | grep nginx

2. Использование pgrep (более удобная альтернатива):

# Найти PID процесса по имени
pgrep nginx
# Найти PID и полную командную строку
pgrep -af nginx

3. Использование pidof (для поиска по точному имени исполняемого файла):

pidof nginx

4. Поиск процесса, использующего определённый порт:

# Использование lsof
sudo lsof -i :80
# Использование ss или netstat
sudo ss -ltnp | grep :80
sudo netstat -tulpn | grep :80

5. Интерактивные мониторы процессов:

top        # Базовый монитор
htop       # Улучшенный, с поддержкой мыши и цветов
btop / btm # Современные мониторы с графиками

6. Поиск по пользователю:

ps -u username

Практический пример из DevOps-практики: Допустим, служба не отвечает на порту 8080.

# 1. Проверяем, слушает ли кто-то порт
sudo lsof -i :8080
# 2. Если процесс найден (например, PID 12345), смотрим о нём детальную информацию
ps -fp 12345
# 3. Или смотрим его открытые файлы и сокеты
ls -la /proc/12345/fd/

Ключевые опции:

  • ps aux — показать все процессы всех пользователей в детализированном формате.
  • pgrep -f — искать по полной командной строке, а не только по имени исполняемого файла.
  • lsof -i — показать процессы, использующие сетевые соединения.