Processos no Linux
Este artigo descreve de maneira básica o tão importante conceito de processos no Linux e, em seguida, mostra quais os meios mais usados para controlá-los e manipulá-los.
Parte 3: Comandos nice e renice
Ao abordarmos os comandos nice e renice é necessário entender o conceito de gentileza. Um processo pode ter prioridade em relação a outros em sua execução. Quando um processo é gentil, significa que ele "oferece a gentileza" de permitir que um processo com prioridade maior que a sua seja executado antes dele. Os níveis de gentileza, também chamados de nice, são determinados através de números. Quanto mais alto for o valor nice, mais gentil é o processo. Geralmente, o intervalo de números usados no nice são os inteiros entre -19 e 19.
Embora determinar a prioridade de um processo não seja uma prática comum, afinal, o próprio Linux faz muito bem essa tarefa, isso pode ser necessário em alguma situação. Para isso, utiliza-se um comando que recebe o mesmo nome do conceito: nice. A sintaxe é:
nice -n prioridade processo
Por exemplo:
$ nice -n -5 ntpd
No exemplo, o ntpd recebe prioridade -5. Trata-se de uma prioridade alta, afinal, como já dito, quanto menor o número menor sua gentileza.
Se um determinado processo está em execução, isso acontece com uma prioridade já definida. Para alterar um processo nessa condição, usa-se o comando renice, cuja sintaxe é:
$ renice prioridade opção processo/destino
As opções do renice são:
$ renice +19 1000 -u vol
Neste caso, o comando renice alterou a prioridade do processo 1000, assim como a prioridade dos processos do usuário vol.
Embora determinar a prioridade de um processo não seja uma prática comum, afinal, o próprio Linux faz muito bem essa tarefa, isso pode ser necessário em alguma situação. Para isso, utiliza-se um comando que recebe o mesmo nome do conceito: nice. A sintaxe é:
nice -n prioridade processo
Por exemplo:
$ nice -n -5 ntpd
No exemplo, o ntpd recebe prioridade -5. Trata-se de uma prioridade alta, afinal, como já dito, quanto menor o número menor sua gentileza.
Se um determinado processo está em execução, isso acontece com uma prioridade já definida. Para alterar um processo nessa condição, usa-se o comando renice, cuja sintaxe é:
$ renice prioridade opção processo/destino
As opções do renice são:
- -u - a alteração ocorrerá nos processos do usuário informado;
- -g - a alteração ocorrerá nos processos do grupo indicado;
- -p - a alteração ocorrerá no processo cujo PID for informado.
$ renice +19 1000 -u vol
Neste caso, o comando renice alterou a prioridade do processo 1000, assim como a prioridade dos processos do usuário vol.
Para conhecer/saber como funcionam processos nos *nix está completo. Começar a aprender com este artigo é no mínimo começar por um bom começo.
Acrescentei-o aos meus favoritos.