Qual è la relazione tra `limite di lancio` e` ulimit`?


11

Non esiste alcuna configurazione ulimit nei file di avvio del sistema / negli script di avvio della shell.

ulimit -a Spettacoli:

-u: processes                       1064
-n: file descriptors                256

launchctl limit Spettacoli:

maxproc     2048           2048           
maxfiles    2048           2048

Ricordo vagamente che i limiti di launchctl dovrebbero corrispondere all'output ulimit di una shell, potrei sbagliarmi.

C'è qualche relazione tra i limiti del lauchctl e ulimit?


Non ricevi risposte soddisfacenti dalla pagina man dei comandi?
Andrew U.

@AndrewU. La pagina di manuale di launchctl non menziona il limite, la pagina di manuale di ulimit non menziona launchctl o launchd.
Howard,

Risposte:


10

Nella shell, ulimit fornisce "il controllo delle risorse disponibili per la shell e per i processi avviati da essa" (vedere man bash). Pertanto, si applica solo alla shell e ai suoi figli. I limiti per launchd sono correlati ad esso e ai processi che gestisce. I due sono separati.

I singoli programmi possono impostare i propri limiti di risorse chiamando le routine Standard C Library ulimit()o getrlimit()e setrlimit(). Alcuni limiti di risorse non possono essere elevati a meno che il processo non sia in esecuzione come superutente.

Come esempio pratico, eseguo il debug di grandi progetti software e il limite predefinito della shell per il numero di file aperti non è abbastanza grande. Nel mio file .bashrc, ho il seguente:

# Increase the upper limit on the number of open files:
ulimit -n 1024

Ora il mio debugger non si lamenterà che non può aprire tutti i file di cui ha bisogno. Ovviamente, ciò non dovrebbe avere alcun impatto su launchd.


1
Per approfondire: derivano le impostazioni predefinite di ulimit launchctl limit; sebbene l'utente possa modificare i numeri ulimit, tuttavia non possono superare i launchctl limitlimiti rigidi.
Howard,

questo verrà ripristinato al riavvio
engineerDave
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.