4

子プロセスが大量のデータを書き込んだり、CPU時間(無限ループ)を過度に消費したりしないように制限したいと思います。Cでは、それを行うためにsetrlimit(2)を呼び出します。node.jsにこのようなものはありますか?

4

3 に答える 3

21

私の知る限り、setrlimit()機能を提供するnode.js拡張機能はありませんが、小さなシェル回避策ハックで制限を回避できます。

/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

更新:拒否されたノードパッチを、NPMGithubposixで利用できるようになった別の拡張モジュールに変換しました。

于 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 に答える