免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1988 | 回复: 5
打印 上一主题 下一主题

[函数] 如何限定进程使用的内存大小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-27 17:38 |只看该作者 |倒序浏览
进程占用了5G的空间, 调用system()的时候失败, strerror的信息为不能分配内存空间,
需要限定一下创建进程的内存空间大小, 查看了一下execve的函数说明, 也没有找到响应内容, 请教如何进行设定, 谢谢!

论坛徽章:
0
2 [报告]
发表于 2009-06-27 17:44 |只看该作者
你现在不限制还内存不够呢,限制了不是更糟糕?

论坛徽章:
0
3 [报告]
发表于 2009-06-27 17:52 |只看该作者
服务器的内存是8G的, 当前进程的空间还是够的
现在使用system调用外部脚本失败, 错误信息为内存空间不够.  外部的脚本基本上不需要多少内存空间.

有一个疑问, 调用system的时候, 是不是会申请跟当前进程一样的内存空间呢? 内存页表空间?
或者有没有别的方法解决调用外部脚本的问题?

我的思路是否有问题?

论坛徽章:
0
4 [报告]
发表于 2009-06-27 18:38 |只看该作者
system返回-1是吗?那应该是fork()失败了。
Linux/glibc2的fork手册是这么说的:
ERRORS
       EAGAIN fork()  cannot  allocate  sufficient memory to copy the parent's
              page tables and allocate a task structure for the child.

       EAGAIN It was not possible to create a new process because the caller's
              RLIMIT_NPROC  resource  limit  was  encountered.  To exceed this
              limit, the process must have either  the  CAP_SYS_ADMIN  or  the
              CAP_SYS_RESOURCE capability.

       ENOMEM fork()  failed  to  allocate  the  necessary  kernel  structures
              because memory is tight.

论坛徽章:
0
5 [报告]
发表于 2009-06-27 20:19 |只看该作者
是返回-1

论坛徽章:
0
6 [报告]
发表于 2009-06-27 21:28 |只看该作者
system()要再装入一份shell副本。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP