Ho intenzione di eseguire un'app Java usando nohup ... &. Il limite deve essere applicato a comandi come questo.
Ho intenzione di eseguire un'app Java usando nohup ... &. Il limite deve essere applicato a comandi come questo.
Risposte:
La maggior parte dei sistemi usa PAM e ha il pam_limitsmodulo impostato limiti basati su /etc/security/limits.conf. Viene chiamato il limite per utente per i file aperti nofile. Puoi impostarlo per ogni utente o per un particolare utente o gruppo e puoi impostare un limite che l'utente può sovrascrivere (limite soft) e un altro che solo il root può ignorare (limite hard). La documentazione e la limits.confpagina man hanno i dettagli. Ad esempio, per aumentare il limite a 50000 per tutti, inserisci questa riga /etc/limits.conf(l'impostazione diventa effettiva quando accedi):
* - nofile 50000
limits.confdo * hard nofile 50000e / o * soft nofile 50000. Non conosco la differenza tecnica tra duro e morbido e ho sempre fatto entrambe le cose.
limit descriptors 50000per cambiare il valore all'interno della finestra / sessione del terminale data.
ulimitcomando (chiamato limitin csh). Un utente senza privilegi non può mai superare il limite massimo.
puoi aggiungere fs.file-max = <your number>in /etc/sysctl.conf. Quindi riavviare.
sysctl fs.file-max=123456. ( /etc/sysctl.confviene letto all'avvio da uno script che richiama sysctlil contenuto.)
Puoi usare ulimit per questo:
http://bloggerdigest.blogspot.com/2006/10/purpose-of-ulimit-linux-command.html
Anche se dovresti assicurarti che l'apertura di così tanti handle di file sia assolutamente necessaria prima di ricorrere a tali aggiustamenti. Aumentare gli handle massimi di file solo perché hai dimenticato di fare un inputstream.close () in un ciclo ritarderà solo il problema sottostante.
Usa ulimit (comando Bash - man bash o trova simile per la tua shell) per istanza del programma. Non utilizzare i limiti di sistema globali se non sai cosa stai facendo - possibili DoS.
nofilein limits.confessere con successo 100000. Posso attestare che l'impostazione di un valore troppo grande ha impedito l'accesso successivo con SSH e ho dovuto eseguire l'avvio da dvd per correggere quel valore in limits.conf per ripristinare il sistema.
vi ~/.bashrc
E aggiungi una riga alla fine del file
ulimit -n 169203