Como encerrar um processo no Linux

Um programa travou. ps mostra o número, kill pede para ele sair e kill -9 força a saída.

Pinguim do Comandu com uma espada e a lista de serviços, com app.service marcado para encerrar

O programa ainda está na máquina

A janela fechou e o computador continua lento. O programa não saiu. No Linux, cada programa em execução é um processo, e ele ocupa a máquina até ser encerrado.

Fechar a janela nem sempre encerra o processo. O número dele continua na lista.

O número na coluna PID

ps aux lista o que está rodando. A coluna PID é o número daquele processo. O nome do programa fica no fim da linha. Esse nome confirma que o número é do programa travado.

bash - comandu
aluno@desafio:~$ ps aux
USER    PID  %CPU COMMAND
aluno   4821 98.2 python app.py
aluno   2204  0.1 bash

O python app.py está no 4821 e usa quase todo o processador. O bash é o próprio terminal, no 2204. O número que interessa é o do programa travado.

Resolva

Na listagem, o python app.py está pesado. Qual número você usa para falar dele?

Pedir para encerrar

kill 4821 pede para aquele processo sair. O pedido dá tempo de fechar arquivo e soltar o que estava aberto. O terminal não escreve nada quando aceita o pedido.

Depois você roda ps aux de novo. Se a linha do 4821 sumiu, o programa saiu.

bash - comandu
aluno@desafio:~$ kill 4821
aluno@desafio:~$ ps aux
USER    PID  %CPU COMMAND
aluno   2204  0.1 bash

Resolva

Você rodou kill 4821 e a linha sumiu do ps. O que aconteceu?

O -9 entra por último

Se o ps ainda mostra o mesmo 4821, o processo ignorou o pedido. Aí entra kill -9 4821. Esse pedido força a saída na hora. O processo não consegue salvar o que estava aberto.

Por isso o -9 espera a primeira tentativa. O kill sem número extra já resolve quando o programa ainda consegue se despedir.

bash - comandu
aluno@desafio:~$ ps aux
USER    PID  %CPU COMMAND
aluno   4821 98.2 python app.py
aluno@desafio:~$ kill -9 4821

Descubra

O kill 4821 já foi enviado e o ps ainda mostra 4821. Qual é o próximo comando?

O número que já não existe

O processo pode sair sozinho entre um comando e o outro. Aí o kill responde No such process. O número não está mais na lista.

bash - comandu
aluno@desafio:~$ kill 4821
bash: kill: (4821) - No such process

Esse aviso é de número. O processo já foi embora. Se a resposta for Operation not permitted, o processo é de outro usuário. Quem pode agir em cada coisa é o assunto de permissões.

Descubra

O terminal escreveu No such process. O que isso diz?

Categorias

Processos