Я пишу программу, в которой несколько процессов будут работать одновременно.В этой программе необходимо, чтобы один процесс временно приостановил всех остальных участников.
Чтобы избавить себя от накладных расходов, связанных с табулированием всех идентификаторов процессов участников на общей странице и индивидуальной сигнализацией, я создалгруппа процессов, к которой присоединяются все участники.
Чтобы приостановить все процессы в группе, я первоначально использовал вызов:
killpg(0, SIGSTOP);
и намеревался возобновить их после:
killpg(0, SIGCONT);
Я быстро понял, однако, что это также приостанавливает вызывающий процесс, если он также является членом группы процессов.Поскольку любой процесс должен быть в состоянии приостановить других членов группы, я не могу посвятить один процесс для этой задачи.Мой вопрос, таким образом, заключается в том, существует ли системный вызов или механизм для приостановки всех членов группы, за исключением вызывающей стороны.Я ищу что-то специально для Linux.