Могу ли я установить ulimit из node.js? - PullRequest
4 голосов
/ 15 ноября 2011

Я хотел бы ограничить дочерние процессы от записи слишком большого количества данных или отнимания слишком большого времени процессора (бесконечный цикл)В C я бы вызвал setrlimit (2) для этого.Есть ли что-то подобное в node.js?

Ответы [ 3 ]

21 голосов
/ 22 ноября 2011

Насколько мне известно, не существует расширения node.js, обеспечивающего функциональность setrlimit(), но вы можете обойти ограничение с помощью небольшого обходного решения:

/bin/bash -c "ulimit -t 100; exec /usr/bin/node /my/node/program.js"

Похоже, что core node.js никогда не будет иметь setrlimit() теперь, когда он поддерживает Windows и больше не является платформой только для POSIX: https://github.com/joyent/node/pull/2143

Обновление: Я преобразовал отклоненный патч Node в отдельный модуль расширения posix, который теперь доступен в NPM и Github .

4 голосов
/ 22 ноября 2011

Я думаю, что этот недавно выпущенный модуль - именно то, что вы ищете: https://github.com/melor/node-posix

1 голос
/ 18 ноября 2011

Я не думаю, что есть какой-либо встроенный метод. Однако вы можете иногда проверять использование памяти процессом с помощью process.memoryUsage () и завершать процесс вручную.

В качестве альтернативы, если вы знаете, как долго он будет работать, вы можете указать время ожидания, как описано здесь .

...