Pracuję, pdftoppm
aby przekonwertować plik PDF dostarczony przez użytkownika na obraz 300DPI. Działa to świetnie, z wyjątkiem sytuacji, gdy użytkownik dostarczy plik PDF o bardzo dużym rozmiarze strony. pdftoppm
przydzieli wystarczającą ilość pamięci, aby pomieścić obraz 300DPI o takim rozmiarze w pamięci, który dla strony o przekątnej 100 cali wynosi 100 * 300 * 100 * 300 * 4 bajtów na piksel = 3,5 GB. Złośliwy użytkownik może po prostu dać mi głupio duży plik PDF i powodować różnego rodzaju problemy.
Chciałbym więc ustalić jakiś twardy limit wykorzystania pamięci dla procesu potomnego, który zamierzam uruchomić - po prostu umieść proces, jeśli spróbuje przydzielić więcej niż, powiedzmy, 500 MB pamięci. Czy to jest możliwe?
Nie sądzę, że można do tego użyć ulimit, ale czy istnieje odpowiednik jednego procesu?
docker
?