У нас есть скрипт, который запускается на наших веб-серверах, запускаемый действиями клиента, который запускает процесс unix для генерации некоторых файлов кэша. Поскольку этот процесс работает с файлами, предоставленными нашим клиентом, он иногда ведет себя неправильно, работает так долго, что процесс PHP, который порождает его время ожидания, или использует столько процессорного времени, что системный администратор убивает его.
Есть ли какая-нибудь команда, которую я мог бы запустить, которая бы ограничивала время процессора / время выполнения процесса? Я ищу команду типа /usr/bin/time
, где я мог бы выполнить эту команду и передать ей командную строку, которую я хочу, чтобы она выполнялась и ограничивалась.
setrlimit
и я порождаю его через PHP, поэтому у меня нет оболочки ...time php /cgi/foo.php
, вы можете использоватьbash -c 'ulimit -t 42; exec "$0" "$@"' php /cgi/foo.php
.Вы также можете использовать
timeout
команду, чтобы заблокировать запуск процесса на более длительный период времени.пример
Обратитесь к странице справки по таймауту за дополнительной информацией
источник