Um conceito não muito conhecido pelos iniciantes no mundo
Linux são os "processos". Saber lidar eficientemente com processos simplifica e agiliza em muito diversas tarefas.
Primeiro, o que é um "processo"? O kernel Linux considera cada programa rodando no sistema como um processo. Ele existe enquanto está sendo executado. Portanto, seu período de existência pode ser muito curto ou muito longo, dependendo de cada caso. A expressão "killed" (morto) é usado para processos que foram terminados.
Cada processo é identificado pelo kernel com uma "identificação de processo" (um process id, ou pid).
Podemos citar várias propriedades de um processo. Por exemplo seu "uid" (id do usuário), seu "gid" (id do grupo), além de suas permissões. Certamente, cada processo possui seu diretório de trabalho (working directory).
Como podemos monitorar os processos em nossa máquina? Uma alternativa é usar o comando "ps". Ele fornece uma fotografia do que está acontecendo na máquina, os processos em execução. Por padrão apenas os vinculados ao próprio terminal e ao próprio usuário. Porém, podemos usar algumas opções e alterar bastante seu comportamento. Veja:
- ps a --> mostra os processos de outros usuários;
- ps x --> inclui processos que não estão controlados pelo terminal.
Uma alternativa é o comando "top". Ele assume todo o terminal (tipo fullscreen) e mostra a atividade dos processos em uma atualização contínua (lembrando a expressão "em tempo real"). A saída do comando "top" mostra os processos em ordem descendente do uso do processador pelos processos.
Mas como lidar com esse conceito pode ser útil para nós? Primeiro, lembre que nem todas as tarefas executadas pela máquina precisam da mesma quantidade de tempo para sua execução. Assim, em Linux, temos um outro conceito que chamados de "prioridade", onde tarefas mais importantes possuem maior prioridade, e assim tomam mais tempo da máquina. Você pode ver isso agora em sua máquina por usar o comando abaixo, e olhar a coluna "PRI":
$ ps -l
Dessa forma você pode alterar as prioridades dos processos. Use o comando "nice". Com ele indicamos um número, que corresponde à prioridade do processo. Por padrão seus processos são automaticamente iniciados com prioridade 10. Quanto maior esse número, menor a prioridade. Assim, um processo com prioridade máxima teria "nice -20". Por exemplo, um comando importante poderia ser usado da seguinte forma:
$ nice -n -15 comando-muito-importante