ps aux
inclui a linha de comando completa (caminho e parâmetros), enquanto o pgrep examina apenas os primeiros 15 caracteres dos nomes dos executáveis
ps aux
retorna a linha de comando completa de cada processo, enquanto pgrep
apenas analisa os nomes dos executáveis.
Isso significa que grepping ps aux
output corresponderá a qualquer coisa que ocorra no caminho ou nos parâmetros de um processo 'binário: por exemplo, '
-
ps aux | grep php5
corresponderá a/usr/share/php5/i-am-a-perl-script.pl
- mas
pgrep php5
não
Tome um exemplo do meu sistema - somente usaremos python em vez de php5
:
-
ps aux | grep python
nos dá:
izx 2348 0.0 0.7 514928 15644 ? Sl Jun24 0:00 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video izx 2444 0.0 0.9 547392 18864 ? Sl Jun24 0:01 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote root 2805 0.0 0.5 95436 12204 ? S Jun24 0:00 /usr/bin/python /usr/lib/system-service/system-service-d izx 6272 0.0 2.9 664400 60320 ? SNl Jun24 1:16 /usr/bin/python /usr/bin/update-manager --no-focus-on-map root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus
- Mas
pgrep python
retorna apenas11729
, o que você verá na lista acima é:
root 11729 0.0 0.9 180508 19516 ? S Jun25 0:00 python /usr/lib/software-properties/software-properties-dbus