Principais Comandos de Gestão e Prioridade de Processos no Linux

O artigo apresenta alguns dos principais comandos para controle de processos do Linux, tais como: ps, kill, fg e bg. Também serão mostrados alguns exemplos de uso dos comandos.

[ Hits: 1.372 ]

Por: Amaury Borges Souza em 23/09/2019


Introdução



Vou iniciar o artigo apresentando alguns dos principais comandos para controle de processos do Linux, tais como: ps, kill, fg e bg. Também serão mostrados alguns exemplos de uso dos comandos.

Conceitos e Sinais de Processos

O primeiro processo do sistema é o: init, ID == 1.

Processo: todo programa, aplicativo que você inicia, todos os scripts que são executados são processos dentro do Linux.

PID: é o Process ID, o número de identificação que cada processo recebe. O único PID fixo existente é o PID do processo INIT, que é o de número 1.

NICE NUMBERS: é o número de prioridade de execução de um processo. Se um processo é executado com maior prioridade, ele usa os melhores recursos de processamento para sua execução, enquanto se for prioridade baixa, ele depende que outros processos que não estejam utilizando estes recursos para que ele também possa fazer uso. Os NICE NUMBERS vão de -20 até 19, sendo a maior a prioridade negativa.

Sinais de Processos

Para saber o que se pode fazer com cada processo que está em execução, é preciso entender os sinais de processos.

Os mais importantes são:

1 - HUP ou SIGHUP: instrui o serviço a reler o seu arquivo de configuração (operação de reload).

2 - INT ou SIGINT: interrompe um processo em primeiro plano (é o mesmo que Ctrl+c).

9 - KILL ou SIGKILL: interrompe bruscamente um processo. Este sinal deve ser utilizado em último caso, pois ele pode causar danos aos arquivos envolvidos no processo.

12 - USR2 ou SIGUSR2: interrompe processo do usuário fazendo logoff no mesmo.

15 - TERM ou SIGTERM: é enviado para todos os processos do sistema assim que ele entra em desligamento. Este sinal fecha todos os arquivos abertos do processo antes de terminá-lo, não causando nenhum tipo de dano a eles. Este é o sinal padrão da maioria dos comandos e programas que terminam processos justamente pela sua elegância.

18 - CONT ou SIGCONT: continua processos que foram parados pelo sinal 20, enviando-os para background.

20 - TSTP ou SIGTSTP: interrompe processos de forma que eles possam ser reiniciados depois pelo sinal 18. É o mesmo que a combinação de teclas Ctrl+z.

Comandos Básicos de Controle de Processos

#& - coloca o processo em background, passando primeiro o comando e depois o &.

Colocando o processo com "&" no final, ele já inicia em background:

gnome-calculator &
[2] 2594

Ctrl+z - interrompe o processo e coloca em background:

jobs -l
[3]+  9064 Stopped                 gnome-calculator

bg - coloca o processo em background:
[3]+ gnome-calculator &

# bg - envia um processo parado com sinal 20 (Ctrl+z) para background.

firefox & - executando em background:
[1] 2477

bg 2 - especifica qual processo você que em background.

# fg - coloca o processo rodando em foreground, fica preso ao terminal, primeiro plano.

# jobs - mostra os processos que estão rodando em background.

jobs -l - mostra o PID dos processos, status e o nome dele.

# kill - envia sinais para um processo.

Outro detalhe importante, é que o sinal padrão do comando kill é 15, pois é o sinal mais aconselhável para terminar uma tarefa, ou seja, terminar um processo com o comando kill sem especificar qualquer argumento, leva-o a terminar o processo com o sinal 15.

kill -l - mostra todos os tipos de sinais que podem ser enviados para o comando kill.

ps aux | grep firefox - ver o PID do Firefox.

pgrep firefox - mostra o PID do Firefox.
4441

kill 4441 - mata o processo de forma "suave".

kill -s SIGKILL 4500 - envia um sinal para forçar o término do processo.

kill -s 9 4557 - mata o processo.

kill -9 4557 - mata o processo.

kill -SIGKILL 4557 - mata o processo.

Terminando o processo de PID 913 com o sinal 15(TERM):

kill -15 913
Ou:
kill TERM 913
Ou:
kill 913

Comandos para Tratar as Prioridades de Processos

# nice - executa um processo com prioridade específica.

nice -n 15 firefox & - definindo prioridade de valor 15 para o Firefox.
Ou:
nice -15 firefox &

nice -n -15 gnome-calculator & - definindo mais prioridade para o processo Firefox, somente root.
Ou:
nice --15 firefox gnome-calculator - omitindo o "-n" que serve também para prioridade negativa.

ps -la | grep 16007 - mostra o processo do Firefox e o número nice.
0 S     0 16007  8037  0  95  15 - 200066 SyS_po pts/1   00:00:00 gnome-calculato

nice --adjustment=10 - outra forma de definir processo como comando nice.

Dicas:
  • Valores podem ser definidos entre -20 (valores negativos mais prioridade) a +19 (valores positivos menos prioridade).
  • Todo processo começa com prioridade 0.
  • A prioridade padrão do comando nice é 10 quando nada é setado.
  • Somente o root pode dar prioridades negativas entre -19 e -1 a processos.
  • Usuários não privilegiados podem iniciar os processos com prioridades de 0 a 19.

Exemplos: clonando o disco /dev/sda em /dev/sdb, com prioridade -15:

nice --15 dd if=/dev/sda of=/dev/sdb

Fazendo backup compactado do diretório /home com prioridade 2:

nice -2 tar cjvf /root/backup_users.tar.bz2 /home

# ps - a ser descrito posteriormente.

# renice - altera a prioridade de um processo que está em execução.

ps -la | grep calcu
0 S     0 16007  8037  0  95  15 - 200066 SyS_po pts/1   00:00:00 gnome-calculato

renice -n 8 16007
16007 (process ID) com prioridade antiga 15, prioridade nova 8

Ou: renice 8 16007 - alterando prioridade positiva para o processo.

renice -n -8 16007
Ou:
renice -8 16007 - alterando a prioridade negativa para o processo.

renice -u lpi1 -n 5 - altera a prioridade de todos os processos do usuário lpi1 para o valor 5.

renice -g lpi1 -n 5 - alterando o grupo do processo.

Mudando a prioridade do processo de PID 1811 para -16:

renice -16 1811

Mudando para 4 a prioridade do processo de PID 1902:

renice 4 1902

Mudando a prioridade de todos os processos do usuário operador para -17:

renice -17 u operador

# top - números que mostram o nice e renice do comando top.
  • NI e PR - prioridade do processo naquele momento.
  • NI - alterado por dois comandos, nice e renice.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Gerenciamento de pacotes Debian - principais comandos LPIC-1

Sistema de gerenciamento de logs do Linux

Leitura recomendada

Teste de distribuições GNU/Linux em pendrive

GNOME vs KDE - Usabilidade ou Personalização

Conversão de códigos e sistemas numéricos

Linux sob o ponto de vista de um iniciante

Instalação do Linux em pendrive com VirtualBox

  
Comentários
[1] Comentário enviado por Deleve em 14/10/2019 - 08:19h

Muito bom artigo, tava bem estudando essa parte mesmo. Gostaria de fazer parte de algum grupo linux ou hacker no rio de janeiro, se alguém souber de algum, por favor me indique.

[2] Comentário enviado por absouza em 14/10/2019 - 08:28h

Olá, bom dia amigo.

No Telegram existem mitos grupos de Linux, DevOps, dá uma procurada que você consegue entrar em um deles.

Obrigado pela leitura do artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts