지금 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
문제를 해결했다