Освобождение ресурсов не является проблемой, потому что родитель и ребенок не имеют доступа к ресурсам друг друга. Может быть, вы говорите о подключении MySQL. Проблема в том, что даже если вы не звоните mysql_close()
, он вызывается по php. Это пример
mysql_connect(...);
if(pcntl_fork()) exit();
mysql_query( ... ); //no mysql connection here
Я слышал, что родитель может предотвратить это, убив себя SIGKILL
, но я не проверял это. Должно быть что-то вроде:
mysql_connect(...);
if(pcntl_fork()) {
posix_kill ( posix_getpid() , SIGKILL);
exit(); // won't hurt to leave it here
}
mysql_query( ... ); //no mysql connection here
Или, если родитель запускает много детей и закрывает соединение с базой данных при выходе, вы можете использовать тот же подход для детей.