【发布时间】:2011-11-15 18:13:16
【问题描述】:
我想限制子进程写入过多数据或占用过多 CPU 时间(无限循环)。在 C 语言中,我会调用 setrlimit(2) 来做到这一点。 node.js中有这样的东西吗?
【问题讨论】:
我想限制子进程写入过多数据或占用过多 CPU 时间(无限循环)。在 C 语言中,我会调用 setrlimit(2) 来做到这一点。 node.js中有这样的东西吗?
【问题讨论】:
据我所知,没有提供 setrlimit() 功能的 node.js 扩展,但您可以通过一个小的 shell 变通方法破解该限制:
/bin/sh -c "ulimit -t 100; exec /usr/bin/node /my/node/program.js"
看起来核心 node.js 将永远不会有 setrlimit(),因为它支持 Windows 并且不再是 POSIX-only 框架:https://github.com/joyent/node/pull/2143
【讨论】:
我认为这个新发布的模块正是您想要的:https://github.com/melor/node-posix
【讨论】:
我认为没有任何内置方法。但是,您偶尔可以使用process.memoryUsage() 检查某个进程的内存使用情况并手动终止该进程。
或者,如果您知道预计运行多长时间,您可以指定超时时间,如here 所述。
【讨论】: