Puoi sempre provare a fare un ulimit -n 2048
. Ciò ripristinerà solo il limite per la shell corrente e il numero specificato non deve superare il limite rigido
Ogni sistema operativo ha una diversa impostazione del limite rigido in un file di configurazione. Ad esempio, il limite del file aperto su Solaris può essere impostato all'avvio da / etc / system.
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
Su OS X, questi stessi dati devono essere impostati in /etc/sysctl.conf.
kern.maxfilesperproc=166384
kern.maxfiles=8192
Sotto Linux, queste impostazioni sono spesso in /etc/security/limits.conf.
Esistono due tipi di limiti:
- i limiti soft sono semplicemente i limiti attualmente applicati
- i limiti rigidi indicano il valore massimo che non può essere superato impostando un limite morbido
I limiti soft possono essere impostati da qualsiasi utente mentre i limiti hard sono modificabili solo da root. I limiti sono una proprietà di un processo. Vengono ereditati quando viene creato un processo figlio, pertanto è necessario impostare i limiti a livello di sistema durante l'inizializzazione del sistema negli script init e i limiti dell'utente devono essere impostati durante l'accesso dell'utente, ad esempio utilizzando pam_limits.
Ci sono spesso impostazioni predefinite impostate all'avvio della macchina. Pertanto, anche se è possibile ripristinare ulimit in una singola shell, è possibile che al riavvio venga ripristinato il valore precedente. Se si desidera modificare l'impostazione predefinita, è possibile eseguire il grepping degli script di avvio per i comandi ulimit di esistenza.