Como mostrar uma lista de processos de um grupo?

Como mostrar uma lista de processos de um grupo?

Quero um comando simples para listar todos os processos e suas informações de um determinado PGID.

Responder1

Não vejo uma maneira de dizer proativamente pspara selecionar com base no pgrp, então você precisa solicitar essa coluna e filtrá-la; algo como:

ps axo pgrp,stat,euid,ruid,tty,tpgid,sess,ppid,pid,pcpu,comm | awk -v pgrp=3668 '$1 == pgrp'

ps -eo pgrp,pid,comm | sed -n -e 1p -e ' /3668/ p'

PGRP=3668; ps -eo pgrp,pid,comm | sed -n -e 1p -e " / $PGRP / p"

Responder2

pgrep -ag PGID

Se PGIDfor 0, significa o próprio grupo de processos do pgrep, por exemplo.

$ cat | cat | cat | pgrep -ag0
7301 cat
7302 cat
7303 cat

(observe que pgrepnunca se inclui na listagem e pkillnunca se mata)

Responder3

Em Darwin, ps -g $pgidfunciona como você pede.

No Linux não funciona e você precisa usar alguma outra solução. Você pode usar ps --ppid $ppidwhich lista todos os processos filhos de um determinado pai.

informação relacionada