У меня есть Makefile, который выглядит примерно так:
sometarget:
command_one # calls fork()
command_two
Вот проблема, с которой я сталкиваюсь, когда делаю make sometarget
:
command_one
запускается и в конечном итоге вызывает fork()
.
Дочерний процесс exec
что-то и завершает рано, возвращая управление к make
до того, как вся обработка command_one
будет завершена.
command_two
затем выполняется до завершения родительского процесса, что приводит к сбою последовательности (поскольку это зависит от полного завершения command_one
).
Я могу изменить command_one
(хотя fork () и exec () должны остаться), и я бы не стал менять Makefile, если это возможно. Есть ли способ предотвратить возврат дочернего процесса (в Linux)? Я думаю, что ответ - нет, но раньше я ошибался ...