То ps aux | grep x
команда дает "лучшие" результаты, чем pgrep x
по сути, потому, что вам не хватает опции с последним.
Просто используйте -f
вариант для pgrep
для поиска по всей командной строке, а не только по имени процесса, которое является его поведением по умолчанию, например:
pgrep -f php5
В отличие от ps | grep
конструкция, с помощью которой вам нужно отфильтровать grep
линия или используйте приемы с шаблоном, pgrep
просто не будет выбирать себя по замыслу.
Более того, если ваш шаблон появится в ps
USER
столбец, вы получите нежелательные процессы в выходных данных, pgrep
не страдает от этого недостатка.
Если вам нужна полная информация, а не только PID, вы можете использовать:
ps wup $(pgrep -f python)
что проще и надежнее, чем
ps aux | grep python | grep -v grep
или
ps aux | grep p[y]thon