Estoy corriendo pdftoppm
para convertir un PDF proporcionado por el usuario en una imagen de 300 DPI. Esto funciona muy bien, excepto si el usuario proporciona un PDF con un tamaño de página muy grande. pdftoppm
asignará suficiente memoria para contener una imagen de 300 DPI de ese tamaño en la memoria, que para una página cuadrada de 100 pulgadas es 100 * 300 * 100 * 300 * 4 bytes por píxel = 3.5GB. Un usuario malintencionado podría darme un PDF tonto y grande y causar todo tipo de problemas.
Entonces, lo que me gustaría hacer es poner algún tipo de límite estricto en el uso de memoria para un proceso secundario que estoy a punto de ejecutar; solo haga que el proceso muera si intenta asignar más de, digamos, 500 MB de memoria. ¿Es eso posible?
No creo que se pueda usar ulimit para esto, pero ¿hay un equivalente de un proceso?
docker
?