comando ulimit
Finalità
Imposta o riporta i limiti delle risorse utente.
Sintassi
ulimit [ -B ] [ -S ] [ -a ] [ -c ] [ -d ] [ -f ] [ -m ] [ -n ] [ -r ] [ -s ] [ -t ] [-u ][ Limite ]
Descrizione
Il comando ulimit imposta o riporta i limiti delle risorse di processo utente, come definito nel file /etc/security/limits . Questo file contiene questi limiti predefiniti:
fsize = 2097151
core = 2097151
cpu = -1
data = 262144
rss = 65536
stack = 65536
nofiles = 2000
threads = -1
nproc = -1
Questi valori vengono utilizzati come impostazioni predefinite quando un nuovo utente viene aggiunto al sistema. I valori sono impostati con il comando mkuser quando l'utente viene aggiunto al sistema o modificato con il comando chuser .
I limiti sono categorizzati come soft o hard. Con il comando ulimit puoi modificare i tuoi limiti morbidi, fino al massimo fissato dai limiti hard. È necessario disporre dell'autorizzazione utente root per modificare i limiti di hard disk.
Molti sistemi non contengono uno o più di questi limiti. Il limite per una risorsa specificata è impostato quando viene specificato il parametro Limite . Il valore del parametro Limite può essere un numero nell'unità specificata con ogni risorsa o il valoreunlimited. Per impostare l'ulimit specifico aunlimited, utilizzare la parolaunlimited
Nota: Impostazione dei limiti predefiniti nel file /etc/security/limits limita i limiti di sistema, non solo limiti assunti da un utente quando tale utente viene creato.
Il limite di risorse corrente viene stampato quando si ometta il parametro Limite . Il limite morbido viene stampato a meno che non si specificasse il flag -H . Quando si specifica più di una risorsa, il nome limite e l'unità vengono stampati prima del valore. Se non viene fornita alcuna opzione, viene assunto il flag -f .
Dal momento che il comando ulimit influenza l'ambiente shell corrente, viene fornito come un comando integrato di shell. Se questo comando viene richiamato in un ambiente di esecuzione del comando separato, non influiscono sul limite di dimensione del file dell'ambiente del chiamante. Questo sarebbe il caso nei seguenti esempi:
nohup ulimit -f 10000
env ulimit 10000
Una volta che un limite duro è diminuito da un processo, non può essere aumentato senza privilegio di root, anche per tornare al limite originario.
Indicatori
| Elemento | Descrizione |
|---|---|
| -a | Elenca tutti i limiti delle risorse correnti. |
| -c | Specifica la dimensione dei core dump, in numero di blocchi da 512 - byte. |
| -d | Specifica la dimensione dell'area dati, in numero di byte K. |
| -F | Imposta il limite di dimensione del file in blocchi quando viene utilizzato il parametro Limite oppure riporta il limite delle dimensioni del file se non viene specificato alcun parametro. Il flag -f è il default. |
| -H | Specifica che il limite hard per la risorsa data è impostato. Se si dispone dell'autorizzazione all'utente root, è possibile aumentare il limite rigido. Chiunque può diminuire. |
| -m | Specifica la dimensione della memoria fisica (dimensione serie residente), in numero di byte K. Questo limite non è applicato dal sistema. |
| -n | Specifica il limite sul numero di descrittori di file che un processo può avere. |
| -r | Specifica il limite sul numero di thread che un processo può avere. |
| -s | Specifica la dimensione dello stack, in numero di byte K. |
| -S | Specifica che il limite soft per la risorsa data è impostato. Un limite morbido può essere aumentato fino al valore del limite rigido. Se non vengono specificate né le bandiere -H né -S , il limite si applica a entrambi. |
| -t | Specifica il numero di secondi da utilizzare da ogni processo. |
| -u | Specifica il limite sul numero di un processo che un utente può creare. |
Stato uscita
Vengono restituiti i seguenti valori di uscita:
| Elemento | Descrizione |
|---|---|
| 0 | Completamento riuscito. |
| > 0 | Una richiesta di un limite superiore è stata respinta o si è verificato un errore. |
Esempio
Per impostare il limite delle dimensioni del file a 51.200 bytes, inserire:
ulimit -f 100Per elencare tutti i limiti delle risorse correnti, inserire:
ulimit -a
time(seconds) unlimited
file(blocks) 2097151
data(kbytes) 131072
stack(kbytes) 32768
memory(kbytes) 65536
coredump(blocks) 2097151
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user) unlimitedFile
| Elemento | Descrizione |
|---|---|
| /usr/bin/ksh | Contiene il comando integrato ulimit . |