Встроенная команда Linux bash для запуска программы и ограничения ресурса - PullRequest
1 голос
/ 16 мая 2011

Я создал сайт, который должен выполнять какую-то программу на C ++ (программа была скомпилирована).Но я хочу ограничить ресурсы, необходимые для программы.Ресурсы, которые я хочу ограничить, это время выполнения и используемая память.Я думаю, что время выполнения может быть сделано с помощью command to execute & sleep time; kill $! Но эта команда вызывает некоторую задержку, если процесс завершается раньше времени ожидания.

Я не знаю, как ограничить время выполнения (без задержки) и использовать памятьвстроенная команда.Есть ли какие-либо предложения сделать это?

Спасибо, прежде чем ... Я действительно ценю вашу помощь ..

Ответы [ 3 ]

1 голос
/ 16 мая 2011

Проверьте команду ulimit.Я не использовал его, но думаю, что он будет делать то, что вы хотите.

1 голос
/ 16 мая 2011

команда ulimit твой друг

например (ulimit -t 1; /your/program 2>/some/logfile) | head -c 100k

сделает две вещи:

  • ограничение максимальной загрузки процессора до одной секунды
  • ограничить вывод до 100k
0 голосов
/ 16 мая 2011
(ulimit -d 1000 -m 1000 -v 1000 -t 1; /your/program 2>/some/logfile) | head -c 100000

Это ограничит объем памяти, а также время.Вы можете использовать ulimit -a, чтобы узнать, что означают эти ограничения, или прочитать справочную страницу bash и найти ulimit.

...