Il comando nice in linux serve per eseguire un processo con una priorità differente da quella standard. La priorità può essere impostata con valori fra -20 e 19, dove -20 è la priorità più alta e 19 la più bassa.
Il valore di nice non va confuso con la priorità di scheduling, la priorità cioè che permette alle applicazioni di determinare in che ordine eseguire i thread. Il valore di nice è un “suggerimento” al sistema sulla priorità del processo, che il sistema può prendere in considerazione o ignorare.
Ci potrebbero essere diverse versioni di nice, una interna alla shell bash e una in /bin/nice. La sintassi dei due comandi potrebbe essere differente, in questo caso fremo riferimento a /bin/nice per gli esempi. In ubuntu linux nice si trova in /usr/bin/nice e coincide con quello di default del terminale bash.
Sintassi del comando nice (/usr/bin/nice)
/usr/bin/nice -n NUM <comando>
dove NUM è il grado di priorità (da -20 e 19) che vogliamo dare al comando.
Possiamo quindi eseguire processi con priorità diverse, ma solo l’utente root può eseguire comandi con nice negativa (quindi più prioritari del normale). Se infatti proviamo a lanciare i seguenti due comandi:
/usr/bin/nice -n 5 htop /usr/bin/nice -n -5 htop
Vediamo che nel primo caso tutto va senza problemi, mentre nel secondo cerchiamo di impostare nice a -5 che è quindi più prioritario del normale e ci viene negato il permesso di farlo.
Se invece volete cambiare priorità di un processo già in esecuzione senza terminarlo dovrete usare il comando renice.