Respostas:
Use pgrep?
pgrep -U xxx yyy
retorna apenas o pid (ou pids, se mais de um processo corresponder).
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 processo para evitar a necessidade de arquivos temporários:
comm -1 -2 <(ps -u xxx | sort) <(ps -C yyy | sort)
comm
faz. Mas eu uso apenas uma vez por ano. Não é intuitivo para mim. Eu acho que todo mundo que usa diariamente vê isso diferente. Existem boas razões para o pgrep existir. Infelizmente, o pgrep não está disponível no meu contexto ... Mas está resolvido agora. A raiz do problema é (de acordo com o meu ponto de vista), que eu preciso suportar o sistema operacional muito antigo sem o pgrep.