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

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

Ответ

В работе с Linux-серверами, где развернуты тестовые среды или агенты CI/CD, часто требуется найти конкретный процесс. Основной инструмент — связка ps и grep.

Базовый поиск:

ps aux | grep -i "название_процесса"
  • ps aux выводит список всех процессов с детальной информацией (пользователь, PID, использование CPU/RAM, команда).
  • grep -i ищет совпадение, игнорируя регистр.

Пример из практики: нужно найти все процессы Java-приложения.

ps aux | grep -i "java"

Вывод покажет PID, что позволит далее завершить процесс (kill <PID>) или проанализировать его.

Более точный поиск, исключая сам процесс grep:

ps aux | grep -i "[j]ava"

Такая запись ([j]ava) найдет процессы с java, но пропустит строку grep java, так как ищется строка [j]ava.

Поиск по PID родительского процесса: Если нужно найти все дочерние процессы (например, воркеры), использую pgrep и pstree.

pgrep -P <parent_pid>  # Найти дочерние процессы
pstree -p <parent_pid> # Показать дерево процессов

Для скриптов и автоматизации: Использую pgrep для получения только PID, что удобно для передачи в другие команды.

pid=$(pgrep -f "my_test_service")
if [ -n "$pid" ]; then
  echo "Process found with PID: $pid"
  kill $pid
fi