Secondo la documentazione del kernel , /proc/sys/file-max
è il numero massimo, totale e globale di descrittori di file che il kernel assegnerà prima di soffocare. Questo è il limite del kernel, non dell'utente attuale. Quindi puoi aprire 590432, purché tu sia solo su un sistema inattivo (modalità utente singolo, nessun daemon in esecuzione).
Si noti che la documentazione non è aggiornata: il file è in uso proc/sys/fs/file-max
da molto tempo. Grazie a Martin Jambon per averlo segnalato.
La differenza tra limiti soft e hard viene data risposta qui, su SE . È possibile aumentare o ridurre un limite software come un normale utente, a condizione che non si superi il limite massimo. Puoi anche abbassare un limite rigido (ma non puoi rialzarlo di nuovo per quel processo). Come superutente, puoi aumentare o diminuire i limiti sia hard che soft. Lo schema a doppio limite viene utilizzato per applicare i criteri di sistema, ma consente anche agli utenti ordinari di impostare limiti temporanei per se stessi e successivamente modificarli.
Nota che se provi a ridurre un limite rigido al di sotto del limite flessibile (e non sei il superutente), EINVAL
tornerai indietro (Argomento non valido).
Quindi, nel tuo caso particolare, ulimit
(che è lo stesso di ulimit -Sf
) dice che non hai un limite morbido sulla dimensione dei file scritti dalla shell e dai suoi sottoprocessi . (questa è probabilmente una buona idea nella maggior parte dei casi)
L'altra tua chiamata, ulimit -Hn
riporta il -n
limite (numero massimo di descrittori di file aperti), non il -f
limite, motivo per cui il limite flessibile sembra superiore al limite effettivo. Se entri ulimit -Hf
otterrai anche "illimitato".
/proc/sys/fs/file-max
.