3. Envando Sinais para Processos: kill, killall e top

3.1. kill, killall

Estes dois comandos são utilizados para enviar sinais aos processos. O comando kill pede um número de processo como argumento, enquanto o killall pede o nome do processo.

Ambos os comandos podem receber opcionalmente o número do sinal que será enviado como argumento. Por padrão, ambos enviam o sinal 15 (TERM) para os processos relevantes. Por exemplo, se você quiser matar o processo com PID 785, entre com o comando:

$ kill 785

Se você que eviar o sinal 19 (STOP), execute:

$ kill -19 785

Suponha que no lugar disso, você quer matar um processo que você conhece o nome. No lugar de encontrar o número do processo utilizando o ps, você pode matar o processo através do nome dele. Se o nome do processo é “mozilla” você poderia executar o comando:

$ killall -9 mozilla

Não importa o que acontecer, você somente irá matar seus próprios processos (a não ser que você esteja logado como root), então você não precisa se preocupar com os processos dos outros usuários caso você esteja em um istema multiusuário, pois eles não serão afetados.

3.2. Misturando o ps e o kill: top

O top é um programa que simultaneamente oferece as funções do ps e do kill, e também é utilizado para monitorar processos em tempo real, oferecendo informações sobre o uso de CPU e memória, tempo de execução e outros, como mostrado na Figura 10.1, “Monitorando Processos com o top”.

Figura 10.1. Monitorando Processos com o top

Monitorando Processos com o top

O top é completamente controlado pelo teclado. Você pode acessar a ajuda pressionando a tecla h. Seus comandos mais úteis são:

  • k: este comando é utilizado para enviar um sinal para um processo. O top então irá te perguntar pelo PID do processo seguido do número ou nome do sinal que será enviado (TERM ou 15 por padrão);

  • M: este comando é utilizado para ordenar os processos através da quantidade de memória que eles utilizam (campo %MEM);

  • P: este comando é utilizado para ordenar os processos pelo tempo de CPU que eles utilizam (campo %CPU): este é o método padrão de ordenamento;

  • u: este é utilizado para exibir os processos de um determinado usuário. O top irá perguntar qual é o usuário e, então, você precisará informar o nome do usuário, e não o seu UID. Se você não informar nenhum nome, todos os processos serão exibidos;

  • i: por padrão, todos os processos, incluindo os parados, são exibidos. Este comando garante que somente os processos que estão sendo executados no momento sejam exibidos (processos cujo campo STAT possui o valor R, Running) e não outros. Utilizando este comando novamente o top voltará a exibir todos os processos.

  • r: este comando é exibido para alterar a prioridade de um processo selecionado.