Вы можете перечислить все процессы в данной группе, отфильтровав вывод ps
.
ps -e -o pgid,pid | awk -v p=1234 '$1 == p {print $2}'
Нет возможности ps
для прямой фильтрации по PGID, вероятно, потому, что это не очень часто бывает полезно.
То, что ps
делает под капотом, не имеет большого значения.
Это не атомарно, в отличие от kill -- -1234
. Но даже если бы существовал способ атомарного перечисления процессов в группе процессов, что хорошего в этом было бы? К моменту обработки списка он может быть неполным или включать мертвые процессы, PID которых был повторно использован.
Чтобы сделать что-то полезное с набором процессов в группе процессов, ядру пришлось бы предоставить интерфейс, который выполняет действие, а не только интерфейс, в котором перечислены члены группы. Единственный такой интерфейс — посылать сигнал процессам.