Temos um script que roda em nossos servidores da web, acionado pela ação do cliente, que inicia um processo unix para gerar alguns arquivos de cache. Como esse processo atua sobre os arquivos fornecidos pelo cliente, às vezes se comporta mal, executando tanto tempo que o processo PHP que o gera atinge o tempo limite ou usa tanto tempo de CPU que um administrador de sistemas o mata.
Existe algum comando que eu possa executar que limite o tempo / tempo de execução da CPU do processo? Estou procurando um comando como /usr/bin/time
, onde eu poderia executar esse comando e passá-lo à linha de comando que eu quero que ele execute e limite.
setrlimit
e estou gerando-lo através de PHP, então eu não tenho um shell ...time php /cgi/foo.php
, pode usarbash -c 'ulimit -t 42; exec "$0" "$@"' php /cgi/foo.php
.Você também pode usar o
timeout
comando para impedir a execução de um processo por mais de um período especificado.exemplo
Consulte a página do manual timeout para obter mais detalhes.
fonte