'matar java' não mata java


8

Estou executando o debian agora e às vezes preciso matar java manualmente a partir do terminal, mas quando tento kill #pid#ou pkill javanada acontece. Nenhuma saída do console (ok, isso é normal) e o java ainda está em execução (não é normal). A única maneira de matá-lo é reiniciar o PC. Alguma sugestão?


o que você está procurando ékillall java
roottraveller #

Respostas:


13

Talvez esteja ignorando o sinal por algum motivo. Você tentou kill -9?

Mas observe: kill -9não pode ser ignorado ou preso. Se um processo vê o sinal 9, não tem escolha a não ser morrer. Ele não pode fazer mais nada - nem mesmo limpar seus arquivos normalmente.


1
kill -9geralmente é um último recurso. É melhor tentar kill -11, em seguida, kill -6em primeiro lugar. Se kill -11não mata, kill -6geralmente mata . Tente kill -11primeiro, aguarde alguns / vários segundos e, se o processo ainda estiver ativo, tente kill -6. Aguarde alguns segundos e, se ainda não estiver morto, você pode tentar kill -9.
Laebshade 28/12/12

2

Ocasionalmente tenho que matar -9. No entanto, se isso estiver acontecendo regularmente, você deve corrigir o problema que está causando o problema. Matar -9 significa que algo está errado.

Em geral, só vejo isso acontecer quando você entra no modo grave de thrash de memória, o que significa que você precisa de mais memória do sistema ou está dando muita memória ao Java quando inicia. No entanto, mais comumente, especialmente se você estiver desenvolvendo coisas, pode ver isso quando a memória "PermGen" fica sem memória.

http://www.brokenbuild.com/blog/2006/08/04/java-jvm-gc-permgen-and-memory-options/

Em qualquer caso, isso pode ocorrer devido a erros de OutOfMemory de algum tipo.


Eu acho que é isso. Ainda não tentei, mas minha máquina com o problema tem 1 GB de RAM e java está alocando 512 MB.
Simiil 19/08/10

1
(Muito tempo para adiar este comentário ...) Se você estiver desenvolvendo Java, 1 GB de RAM não será suficiente. Morda a bala e atualize para pelo menos 2, atire para 4 ou mais.
kāgii

0

Leia isto , isto e isto . Isso o ajudará a entender como o comando kill funciona.

Você pode procurar o java pid com:

pgrep -l java ou pidof java

Talvez você tenha processos zumbis no sistema, nesse caso, leia aqui


0

Tente o seguinte:

kill -9 $(pgrep Java)

pgrepretorna o PID do processo chamado "Java" e o killmata


Isso deve ser essencialmente o mesmo que pkill, já é o que ele já está usando
Michael Mrozek

-1

Isso deve funcionar:

killall -9 Java

isso é realmente correto ans. por favor, escreva seu comentário se estiver com voto negativo.
roottraveller
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.