Linux 컴퓨터 (RHEL 5)에서 Java 6을 실행하고 있으며 프로그램이 가끔 컴퓨터 입력을 잠급니다. 마우스 클릭이나 키보드 스트로크는 작동하지 않습니다. 이상하게도 마우스 커서를 움직일 수 있으며 CTRL + ALT + F2 명령이 작동합니다 (터미널을 불러 오지는 않지만).JVM이 시스템에서 마우스 클릭과 키보드 입력을 잠글 수있는 원인은 무엇입니까?
top
과 jvisualvm
을 사용하면 프로세스에서 메모리 누수 또는 기타 문제가 나타나지 않습니다. 그러나 컴퓨터를 고정 해제하는 유일한 방법은 다른 컴퓨터에서 ssh
으로 이동하여 Java 프로세스를 종료하는 것입니다. 이 행동의 원인은 무엇일까요?
메모리 천장을 낮추어 가끔씩 재현 할 수 있습니다.
"Java2D Disposer" daemon prio=10 tid=0xae7d6800 nid=0x4451 in Object.wait() [0xae6ad000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xb3253070> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0xb3253070> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:127)
at java.lang.Thread.run(Thread.java:662)
* "컴퓨터를 고정 해제 할 수있는 유일한 방법은 다른 컴퓨터에서 ssh를 실행하고 Java 프로세스를 죽이는 것입니다."* ... 그건 꽤 망가진 Linux 설정입니다.) 이것이 문제가된다면 컴파일 된 MagicSysRQ로 커널을 다시 컴파일하십시오 (이미 가지고있을 수도 있습니다). 다른 것보다 훨씬 낮은 레벨에서 키 스트로크를 가로 채고 프로세스를 죽일 수있는 가능성을 제공합니다. 6 개월의 가동 시간을 가지거나 재부팅하지 않고 SSH로 전환 할 필요가 없을 때 편리해질 수 있습니다. – TacticalCoder
@ GarretHall : CTRL + ALT + F2가 "다소"작동하는 경우에도 X 서버를 죽이는 것을 허용하는 바로 가기가 여전히 작동 할 것이라고 확신합니다. 내 요점은 : SSH는 시스템을 잠금 해제하는 유일한 방법이 아닐 것입니다.) (귀하의 질문에 +1했다) – TacticalCoder