Tenemos un script que se ejecuta en nuestros servidores web, desencadenado por la acción del cliente, que inicia un proceso de Unix para generar algunos archivos de caché. Debido a que este proceso actúa sobre los archivos suministrados por nuestro cliente, a veces se comporta mal, se ejecuta tanto tiempo que el proceso de PHP que genera el tiempo de espera o usa tanto tiempo de CPU que un administrador de sistemas lo matará.
¿Hay algún comando que pueda ejecutar que limitaría el tiempo de CPU / tiempo de ejecución del proceso? Estoy buscando un comando como /usr/bin/time
, donde podría ejecutar ese comando y pasarle la línea de comando que quiero que se ejecute y limitar.
setrlimit
y lo estoy generando a través de PHP para no tener un shell ...time php /cgi/foo.php
, puedes usarlabash -c 'ulimit -t 42; exec "$0" "$@"' php /cgi/foo.php
.También puede usar el
timeout
comando para bloquear la ejecución de un proceso durante más tiempo que el especificado.ejemplo
Consulte la página del manual de tiempo de espera para obtener más detalles.
fuente