PHP exec() 使用内存

标签 php memory exec

我似乎找不到这个问题的明确答案。

当从 PHP 使用 exec() 调用 shell 命令时,shell 命令使用的内存是否计入 PHP 脚本给定的内存限制?

我意识到,如果该命令生成大量输出,并且该输出在 exec()$ouput(第二个)参数中捕获,则返回数据可能会破坏 PHP 内存限制。但是,假设所有输出都发送到一个文件,如果 exec() 命令需要 128M 的内存才能运行,那么一个限制为 64M 内存的 PHP 脚本是否能够运行它?

<?php
exec('command_using_128M_memory >/dev/null 2>&1');

我假设 PHP5.3+

最佳答案

exec() 命令不直接计入 PHP,因为该进程是单独执行的,而不是在 PHP 进程中执行。话虽如此,如果您在命令中使用任何输出变量,它们都会计入限制。

因此,如果您有一个产生大量详细日志记录的文件,并且您正在捕获该日志记录,它将计入内存限制。

关于PHP exec() 使用内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291615/

相关文章:

php - 通过 htaccess 将扩展名插入到没有扩展名的文件中

php - Magento 1.7 客户/帐户 404 错误

c - 顺序访问内核驱动程序中的大页面

c++ - 运行时错误检查/RTC

javascript - 强制 Javascript(节点)等待 exec

java - 从 Java 运行 linux 脚本

javascript - Magento 表单验证,表单不提交有效字段

php - 构建更高效的基于 javascript 用户的聊天

c++ - 使用 memcpy 或对结构中的数组赋值的访问冲突

即使更新了 sudoers,PHP 网页也不会启动 unix 命令