Sto correndo pdftoppm
per convertire un PDF fornito dall'utente in un'immagine da 300 DPI. Funziona alla grande, tranne se l'utente fornisce un PDF con dimensioni di pagina molto grandi. pdftoppm
allocherà memoria sufficiente per contenere un'immagine di 300 DPI di quella dimensione in memoria, che per una pagina quadrata da 100 pollici è 100 * 300 * 100 * 300 * 4 byte per pixel = 3,5 GB. Un utente malintenzionato potrebbe semplicemente darmi un PDF sciocco e causare tutti i tipi di problemi.
Quindi quello che vorrei fare è mettere un certo limite all'utilizzo della memoria per un processo figlio che sto per eseguire: basta che il processo muoia se tenta di allocare più di, diciamo, 500 MB di memoria. È possibile?
Non credo che ulimit possa essere usato per questo, ma esiste un equivalente a un processo?
docker
?