Usando il comando ulimit
si cambiano solo i limiti delle risorse per la shell corrente e i suoi figli e sudo ulimit
crea una shell di root, regola i suoi limiti e poi esce (quindi non ha, per quanto posso vedere, nessun effetto reale).
Per superare 12288, è necessario regolare i parametri kern.maxfiles
e kern.maxfilesperproc
del kernel, e anche (almeno secondo questo post del blog , che è un riassunto di questa discussione ) un limite di launchd. Puoi usare launchctl limit
per regolarli tutti insieme:
sudo launchctl limit maxfiles 1000000 1000000
Per rendere questo permanente (cioè non resettare al riavvio), crea /etc/launchd.conf
contenente:
limit maxfiles 1000000 1000000
Allora puoi usare ulimit
(ma senza lo sudo
) per regolare il tuo limite di processo.
Se questo non funziona, potreste avere dei limiti di dimensione nel kernel. Se il tuo modello lo supporta , avviare il kernel in modalità 64-bit può aiutare.