Предположим, что pid X
является лидером группы процессов и X
завершается, но другие процессы в группе процессов продолжают работать (с X
в качестве pgid). Будет ли Linux препятствовать назначению значения X
в качестве pid новому процессу?
Я спрашиваю об этом из-за условия сбоя, которое POSIX допускает для setsid
:
[EPERM] Вызывающий процесс уже является лидером группы процессов, или идентификатор группы процессов процесса, отличного от вызывающего, совпадает с идентификатором процесса вызывающего процесса.
Эта ошибка кажется ошибкой неустранимое условие для кода, использующего группы процессов (то есть оболочки), которые будут запускаться «случайным образом», что делает его еще более одиозным. Я бы предположил, что любая реализация, нацеленная на нормальный уровень качества, позволила бы избежать переназначения X
как pid, пока он все еще используется как pgid, но я нигде не могу найти это задокументировано.