4

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

4

3 回答 3

21

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

/bin/sh -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中使用。

于 2011-11-21T21:49:34.337 回答
4

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

于 2011-11-22T12:22:08.780 回答
1

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

或者,如果您知道预计运行多长时间,则可以按照此处所述指定超时。

于 2011-11-18T13:19:41.920 回答