
Limitare le risorse
Tra le tante opzioni messe a disposizione
dalla shell c'è anche
la possibilità di limitare le risorse
a cui un programma può accedere.
Questo può essere utile sia per limitare
un singolo programma, in modo
da poter disporre di più risorse per
gli altri, sia per limitare gli utenti di un
sistema condiviso in modo che non
consumino troppa capacità del sistema
a scapito degli altri utilizzatori.
Per accedere alla limitazione della
memoria, della CPU, delle dimensioni
dei file e di molte altre impostazioni,
basta utilizzare il comando ulimit.
Con questo comando della shell si
possono sia conoscere gli eventuali
limiti impostati per l'utente con cui si
è eseguito il login, (basta infatti digitare
ulimit -a), sia impostare nuovi limiti.
Proprio osservando l'output di
questo comando, si nota che vicino ad
ogni singolo limite (che generalmente
in un sistema desktop è impostato
su illimitato, unlimited), appare anche anche
la relativa opzione da richiamare
nel caso in cui si voglia agire su
quel parametro. Quindi, per impostare
ad esempio un limite sull'uso
della memoria si dovrà digitare:
ulimit -m memoria_
massima_utilizzabile
In questo caso il parametro va espresso
in Kbyte e una volta premuto Invio nessun
programma eseguito all'interno di
questa shell, potrà più richiedere una
quantità maggiore di RAM di quella indicata.
In maniera analoga per impostare
un tetto massimo sulle dimensioni
di un file si utilizzerà l'opzione -f seguita
dal numero massimo di blocchi. Per
chi utilizza ulimit per la prima volta è
però fortemente consigliabile eseguire
questo comando all'interno di una specifica
shell, in modo da poter tornare
alla configurazione originale semplicemente
digitando il comando exit. Per
attivare una ulteriore shell basterà, dopo
aver aperto una finestra di terminale,
digitare
bash
e poi, ad esempio
ulimit -f 10
per limitare il numero massimo di
blocchi che un singolo file potrà occupare
(verificabile digitando nuovamente
ulimit -a). A questo punto, se
si prova a copiare un file più grande
di 10 blocchi si otterrà il seguente
messaggio di errore:
“Ecceduto limite dimensione
file”
e il file non verrà copiato. Come detto,
per ripristinare i valori iniziali basterà
terminare la shell attuale e tornare
alla precedente digitando semplicemente
il comando exit.
Logicamente, nel caso in cui vi siano
dei limiti già impostati sarà solo
possibile ridurli ulteriormente e non
aumentarli a meno di non disporre
delle credenziali di amministratore.