"Kill Java"는 Java를 죽이지 않습니다.

"Kill Java"는 Java를 죽이지 않습니다.

지금 Debian을 실행 중이고 때로는 터미널에서 Java를 수동으로 종료해야 kill #pid#하지만 pkill java. 콘솔 출력이 없으며(정상입니다.) Java가 계속 실행 중입니다(정상이 아님). 종료하는 유일한 방법은 PC를 다시 시작하는 것입니다. 어떤 제안이 있으십니까?

답변1

어떤 이유로 신호가 무시되었을 수도 있습니다. 시도해 보셨나요 kill -9?

하지만 주의하세요. kill -9무시하거나 갇힐 수는 없습니다. 프로세스가 신호 9를 본다면 죽을 수밖에 없습니다. 다른 작업은 수행할 수 없습니다. 심지어 파일을 정상적으로 정리하는 것도 불가능합니다.

답변2

가끔 -9를 죽여야 합니다. 그러나 이런 일이 자주 발생하는 경우에는 원인이 되는 문제를 해결해야 합니다. Kill -9는 무언가가 아직 멀리 떨어져 있음을 의미합니다.

일반적으로 말해서, 심각한 메모리 손상 모드로 들어갈 때만 이런 일이 발생합니다. 이는 더 많은 시스템 메모리가 필요하거나 시작 시 Java에 너무 많은 메모리를 제공했음을 의미합니다. 그러나 더 자주, 특히 무언가를 개발하는 경우 "PermGen" 메모리가 부족할 때 이런 일이 발생하는 것을 보게 될 것입니다.

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

어쨌든 이것은 아마도 일종의 OutOfMemory 버그 때문일 것입니다.

답변3

이것은 작동합니다:

killall -9 java

답변4

나에게는 프로세스를 종료하면 다시 시작됩니다. 그래서 나에게는 다음과 같은 명령을 포함하는 사실 찾기 임무였습니다. 관련 포트가 포트 8080이라고 가정합니다.

lsof -i tcp:8080

java하단 근처에 명명된 프로세스와 해당 pid를 기록해 두십시오 .

그 다음에ps -ef <pid here>

이에 관련된 빅뉴스가 쏟아진다 tomcat. tomcat@9특히.

brew services stop tomcat@9문제를 해결했다

관련 정보