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

我想限制subprocess写太多的数据或占用太多的CPU时间(无限循环)。 在C中,我打电话setrlimit(2)做到这一点。 在node.js中有这样的东西吗?

据我所知,没有提供setrlimit()function的node.js扩展,但是你可以用一个小的shell解决方法hack来解决这个限制:

 /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

更新:我将被拒绝的节点补丁转换成一个单独的posix扩展模块,现在可以在NPM和Github中使用 。

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

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

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