我想限制子进程写入太多数据或占用过多的CPU时间(无限循环)。在C中,我会调用setrlimit(2)来做到这一点。在node.js中有这样的东西吗?
答案 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
答案 1 :(得分:4)
我认为这个新发布的模块正是您所需要的:https://github.com/melor/node-posix
答案 2 :(得分:1)
我认为没有任何内置方法。但是,您可以使用process.memoryUsage()偶尔检查进程的内存使用情况并手动终止进程。
或者,如果您知道预计运行的时间,可以按照here所述指定超时。