Abra outro terminal e execute ps ax | grep foo
, em que foo é o nome do programa que não responde. Isso deve retornar uma linha de saída semelhante a esta:
$ ps ax | grep firefox
2222 ? S 0:00 /bin/sh /usr/lib/firefox-3.6.9/firefox
2231 ? Sl 514:36 /usr/lib/firefox-3.6.9/firefox-bin
30290 pts/2 S+ 0:00 grep --color=auto firefox
O primeiro campo de cada linha de saída é um número que representa o ID de Processo do programa correspondido por grep
(você pode ignorar com segurança o último, que representa grep
em si.
Para interromper o processo ofensivo, faça:
kill pid
em que pid é o ID do processo do programa. Você pode ter que usar seu julgamento sobre qual das correspondências precisa ser kill
ed ou usar top
. Usar kill
por si só envia SIGTERM, que você deve tentar primeiro, pois permite que o programa seja limpo adequadamente após ele mesmo. Se o SIGTERM falhar, tente SIGHUP, que é um remédio mais strong: kill -HUP pid
. Se tudo mais falhar, envie SIGKILL. Mas, você deve fazê-lo apenas como último recurso, porque o SIGKILL faz com que o kernel encerre o processo imediatamente, sem possibilidade de limpeza. Isso às vezes pode resultar em corrupção de dados ou outros problemas. Então, novamente, envie o SIGKILL como último recurso. Para fazer isso, faça kill -KILL pid
ou kill -9 pid
.
Se você estiver executando uma interface gráfica, é claro, você não terá que enganar com essa coisa louca de linha de comando para fazer o trabalho. Apenas abra o "System Monitor", navegue até a aba Processos, escolha o processo que você quer parar (Hm, poderia ser aquele usando 90% da CPU?) E clique com o botão direito nele. Como o processo já está parado, (esse é o problema, certo?), Escolha Finalizar processo ou Eliminar processo no menu resultante.
Crédito para koanhead