Я использую PHP и pcntl_fork(). Идея состоит в том, что родитель разветвляется и делает паузу для завершения ребенка; ребенок выполняет задание, затем завершается; родитель может проверить код возврата для задачи или состояние дочернего процесса и продолжить соответствующим образом.
(Задача изолирована от основного родителя путем разветвления, чтобы родитель мог хорошо очиститься, если задача сталкивается с непреодолимой проблемой времени выполнения, такой как поврежденные файлы "include" или отсутствующие библиотеки ключей, отсюда и ответвление, в основном я реализую простая изоляция процесса для, как мы надеемся, редкого случая, когда необратимое условие может вызвать проблемы)
Таким образом, проблема в том, что после pcntl_fork() оба процесса совместно используют одни и те же дескрипторы ввода-вывода STDXXX, поэтому, как только дочерний процесс завершает свою задачу, ввод-вывод, который он использует, как обычно, закрывается, и поэтому они закрываются для родителя как ну, это означает, что такие вещи, как echo(), используемые для продолжения взаимодействия с родителем, тоже внезапно перестают работать.
Я следую совету на php.net и использую posix kill -9 в дочернем элементе вместо exit, так что дочерний процесс завершается без закрытия IO, совместно используемого (и необходимого) для родителя, но есть более удобный способ сделать это ?
Спасибо!