pgrep
também suporta filtragem pelo usuário do processo:
pgrep -u root httpd
Se você quiser extrair o PID da sua saída top
, tente este awk
one-liner:
($NF=="httpd" && $2=="root") {print $1}
por exemplo.
top -b -n 1 -p $(pgrep -d',' http) |
gawk '($NF=="httpd" && $2=="root") {print $1}'
Outra opção pgrep
às vezes útil é -o
para o processo de correspondência mais antigo, que deve ser o processo de ouvinte httpd
de nível superior (pgrep é inteligente o suficiente para tentar fazer a coisa certa quando os processos correspondentes têm o mesmo "hora de início".
O Apache também é geralmente configurado para gravar um arquivo pid, normalmente em algum lugar como /usr/local/apache2/logs/httpd.pid
ou /var/run/httpd.pid
, que deve conter o PID de nível superior também (embora seja um pouco menos confiável, pois pode ser obsoleto).