Ответ
В работе с 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