No seu comentário, você esclarece:
I'm actually looking for a single step option to ps or pgrep (or similar) which only outputs "active" processes...
Temo que você esteja sem sorte com as implementações atuais do ps / pgrep.
Post filtering like this relies on a full understanding of the intial output, which I don't have...
Mas você pode compreender isso e, melhor ainda, controlar essa saída conforme desejado. Tente algo assim:
function pgrep_live {
pids=$(pgrep "$1");
[ "$pids" ] || return;
ps -o s= -o pid= $pids | sed -n 's/^[^ZT][[:space:]]\+//p';
}
Isso retornará os pids para qualquer processo pgrep'd que corresponda à sua string de entrada, processos que estão "disponíveis para uso normal," ou seja, dead + unreaped ( Z ) nem parado ( T ).