Qual è la differenza tra limiti hard e soft in ulimit?
Per il numero di file aperti, ho un limite soft di 1024 e un limite hard di 10240.
È possibile eseguire programmi che aprono più di 1024 file. A cosa serve il limite morbido?
Risposta accettata:
Un limite rigido può essere aumentato solo da root (qualsiasi processo può abbassarlo). Quindi è utile per la sicurezza:un processo non root non può oltrepassare un limite rigido. Ma è scomodo in quanto un processo non root non può avere un limite inferiore rispetto ai suoi figli.
Un limite morbido può essere modificato dal processo in qualsiasi momento. Quindi è conveniente finché i processi cooperano, ma non va bene per la sicurezza.
Un tipico caso d'uso per i limiti software è disabilitare i core dump (ulimit -Sc 0
) mantenendo la possibilità di abilitarli per un processo specifico di cui stai eseguendo il debug ((ulimit -Sc unlimited; myprocess)
).
Il ulimit
Il comando shell è un wrapper di setrlimit
chiamata di sistema, ecco dove troverai la documentazione definitiva.
Si noti che alcuni sistemi potrebbero non implementare tutti i limiti. In particolare, alcuni sistemi non supportano i limiti per processo sui descrittori di file (Linux lo fa); in caso contrario, il comando della shell potrebbe non essere operativo.