Вызов setpgid для дочернего процесса UNIX - PullRequest
0 голосов
/ 03 октября 2009

Мне нужен альтернативный вызов функции для setpgid для вызова процесса, который выполнил вызов exec (). setpgid возвращает ошибку, если она вызывается для потомка, который уже вызвал exec. Существует ли альтернативная функция?

1 Ответ

1 голос
/ 04 октября 2009

После успешного выполнения группа процессов может быть изменена только самим процессом. Самый простой способ изменить его из другого процесса, если ребенок сотрудничает, - это использовать канал или другой механизм межпроцессного взаимодействия, чтобы попросить ребенка изменить свою собственную группу процессов. Другой альтернативой может быть подключение к дочернему процессу (например, с помощью ptrace, gdb или специфичного для ОС механизма) и выполнение системного вызова setpgid () из контекста дочернего процесса. Другие альтернативы, такие как новый модуль ядра или изменение памяти ядра, требуют наличия корневых или специальных системных возможностей и, вероятно, будут намного хуже, чем другие подходы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...