Получение PID братьев и сестер

Я запускаю несколько параллельных сценариев bash (братьев и сестер) из другого сценария bash (родителя). Как мне лучше всего получить в этих сценариях PID других братьев и сестер?

Родительский процесс, с которым я могу работать

ps -p $$ -o ppid --no-heading

но я не мог понять, как получить дочерние процессы.


person Markus Schmassmann    schedule 07.07.2016    source источник


Ответы (1)


Попробуйте ps --ppid <parent-process-id> (или) pgrep -P <parent-process-id>

Со страницы man ps

--ppid pidlist Выбрать по идентификатору родительского процесса. Это выбирает процессы с идентификатором родительского процесса в pidlist. То есть он выбирает процессы, являющиеся дочерними по отношению к перечисленным в pidlist.

Для pgrep

-P ppid,... Соответствовать только процессам, чей идентификатор родительского процесса указан в списке.

person Inian    schedule 07.07.2016
comment
для полноты, pgrep -P `ps -p $$ -o ppid --no-heading или ps --ppid `ps -p $$ -o ppid --no-heading` -o "pid" --noheading, чтобы получить братьев и сестер - person Markus Schmassmann; 08.07.2016
comment
или лучше pgrep -P $(ps -p $$ -o ppid --no-heading) или ps --ppid $(ps -p $$ -o ppid --no-heading) -o "pid" --noheading, чтобы получить братьев и сестер - person Markus Schmassmann; 08.07.2016