Qual è la relazione tra "limite di launchctl" e "ulimit"?

11

Non c'è alcuna configurazione ulimit nei file di avvio del sistema / script di avvio della shell.

ulimit -a mostra:

-u: processes                       1064
-n: file descriptors                256

launchctl limit mostra:

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 di lauchctl e ulimit?

    
posta Howard 07.01.2014 - 11:57
fonte

1 risposta

10

Nella shell, ulimit fornisce "il controllo sulle risorse disponibili per la shell e ai processi avviati da essa" (vedere man bash ). Pertanto, si applica solo al guscio 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 di libreria C standard 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 progetti software di grandi dimensioni 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, questo non dovrebbe avere alcun impatto su launchd.

    
risposta data 11.01.2014 - 03:59
fonte

Leggi altre domande sui tag