子プロセスが大量のデータを書き込んだり、CPU時間(無限ループ)を過度に消費したりしないように制限したいと思います。Cでは、それを行うためにsetrlimit(2)を呼び出します。node.jsにこのようなものはありますか?
7370 次
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
更新:拒否されたノードパッチを、NPMとGithubposix
で利用できるようになった別の拡張モジュールに変換しました。
于 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 に答える