Кажется, я не могу найти окончательного ответа на этот вопрос.
При вызове команды оболочки, использующей exec()
из PHP, использует ли память, которую использует команда shell, в отношении ограничения памяти, которое предоставляется PHP-скриптом?
Я понимаю, что если команда генерирует много выходных данных, и этот вывод фиксируется в $ouput
(втором) параметре exec()
, то эти возвращенные данные могут привести к ограничению памяти PHP. Однако, если все выходные данные отправляются в файл, если команде exec()
требуется 128M памяти для запуска, должен ли сценарий PHP с ограничением 64M памяти иметь возможность запускать его?
<?php exec('command_using_128M_memory >/dev/null 2>&1');
Я предполагаю PHP5.3 +
Команда exec()
напрямую не учитывает PHP, поскольку процесс выполняется отдельно не из PHP-процесса. Сказав, что если вы используете какую-либо выходную переменную с помощью команды, она будет рассчитывать на ограничение.
Поэтому, если у вас есть файл, который подготовил много подробных протоколов, и вы захватили этот журнал, он будет рассчитывать на ограничение памяти.