Use pgrep?
pgrep -U xxx yyy
retorna apenas o pid (ou pids, se mais de um processo corresponder).
Eu preciso do pid para um processo dado seu dono e seu comando. Eu posso filtrar um processo por usuário com "ps -u xxx" e seu comando por "ps-yyy", mas quando eu tento "ps -u xxx-yyy", eles são combinados usando a lógica OR. Eu preciso de lógica. Como posso conseguir isso?
Use grep?
ps -u xxx | grep yyy | grep -v grep
Você usa comm
para encontrar PIDs comuns a ambas as condições:
ps -u xxx | sort > /tmp/ps-uxxx
ps -C yyy | sort > /tmp/ps-Cyyy
comm -1 -2 /tmp/ps-uxxx /tmp/ps-Cyyy
Usando o bash, você pode usar a substituição de processos para evitar a necessidade de arquivos temporários:
comm -1 -2 <(ps -u xxx | sort) <(ps -C yyy | sort)