Ответ
В 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— показать процессы, использующие сетевые соединения.