我可以从node.js设置ulimit吗?

时间:2011-11-15 18:13:16

标签: node.js ulimit

我想限制子进程写入太多数据或占用过多的CPU时间(无限循环)。在C中,我会调用setrlimit(2)来做到这一点。在node.js中有这样的东西吗?

3 个答案:

答案 0 :(得分:20)

据我所知,没有提供setrlimit()功能的node.js扩展,但你可以通过一个小的shell解决方法来解决这个问题:

/bin/bash -c "ulimit -t 100; exec /usr/bin/node /my/node/program.js"

看起来核心node.js现在永远不会有setrlimit()它支持Windows并且不再是仅限POSIX的框架:https://github.com/joyent/node/pull/2143

更新:我将被拒绝的Node补丁转换为单独的posix扩展模块,该模块现已在NPMGithub中提供。

答案 1 :(得分:4)

我认为这个新发布的模块正是您所需要的:https://github.com/melor/node-posix

答案 2 :(得分:1)

我认为没有任何内置方法。但是,您可以使用process.memoryUsage()偶尔检查进程的内存使用情况并手动终止进程。

或者,如果您知道预计运行的时间,可以按照here所述指定超时。