Как показать список процессов из группы?

Как показать список процессов из группы?

Мне нужна простая команда для вывода списка всех процессов и их информации из заданного PGID.

решение1

Я не вижу способа заранее указать, psчто нужно выбирать на основе pgrp, поэтому вам придется запросить этот столбец, а затем отфильтровать по нему; что-то вроде:

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"

решение2

pgrep -ag PGID

Если PGIDэто 0, это означает собственную группу процессов pgrep, например.

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

(обратите внимание, что pgrepникогда не включает себя в список и pkillникогда не убивает себя)

решение3

На Дарвине ps -g $pgidвсе работает так, как вы просите.

В Linux это не работает и вам нужно использовать какое-то другое решение. Вы можете использовать, ps --ppid $ppidкоторое выводит список всех дочерних процессов данного родителя.

Связанный контент