O shell ulimit
permite restringir recursos. Para o seu caso, para limitar o uso de memória no shell (e seus filhos), use ulimit -v
.
Demonstração definindo um limite de memória de 100 MB (100.000 KB):
$ ulimit -v
unlimited
$ python -c '[ "x" * 100000000 ]'
$ ulimit -v 100000
$ python -c '[ "x" * 100000000 ]'
Traceback (most recent call last):
File "<string>", line 1, in <module>
MemoryError
Observou-se usando ps uww -C script-name-here
que python requer pelo menos 29MB de memória (coluna VSZ). O limite de RSS aumenta à medida que o seu script python precisa de mais memória, portanto, adapte essa coluna.