execve из Mac OS X launchd демон - PullRequest
4 голосов
/ 10 марта 2011

Можно ли использовать execve от демона launchd?Мой процесс, который я хотел бы превратить в демон, запускает несколько дочерних процессов с использованием fork (), за которым следует execve, но документация для создания launchd демонов гласит, что «вызов fork с последующим exec» не подходит.Означает ли это, что я не могу создавать дочерние процессы из демона?

1 Ответ

4 голосов
/ 10 марта 2011

AFAIK, вы можете просто разветвляться и исполняться. Вот критическая точка: «Вы не должны разветвлять свой процесс и иметь выход родительского процесса.» Дело в том, что launchd «следит» за вашим сервисом. Если ваш сервис завершается, он перезапускается. Это означает, что он также не может демонизироваться (под daemonize я имею в виду классический , порождающий новый процесс, создающий новую группу процессов, выход из родительского процесса, подпроцесс живет по схеме ).

Полагаю, вам следует обязательно убить / выйти из подпроцессов перед выходом из основного процесса, чтобы не засорять среду.

...