【发布时间】:2010-02-24 13:52:14
【问题描述】:
我在我的板上使用 linux 内核 2.6.30。 它有 128MB 的 DDR2。 我的主应用程序占用了将近 80MB 的系统内存。 执行所有应用程序后,只剩下 25MB。 我想从我的主应用程序(使用 80MB)执行系统命令。 但它没有被执行。据我了解,每个子进程都需要与父进程相同的内存(我从 fork 功能手册中得到了这个描述)。所以在我的情况下,新的子进程需要另外 80MB,这是不可用的。因此系统调用不起作用。 系统命令必须在给出命令后立即执行,因为主应用程序中的以下步骤需要系统命令的结果(例如需要将 grep 命令的输出存储在文件中并立即读取该文件以进行进一步处理)。因此我不能使用 IPC 机制。 还有哪些方法?
苏拉布·沙阿
【问题讨论】:
-
对于遇到此问题的任何人。我也面临同样的问题,通过在 /etc/sysctl.conf 中设置 vm.overcommit_memory=1 临时修复