는 내가 자바 프로그램을 시작하면 이상한 시나리오를 발견하고 난에있는, 그것은/응답을 작동하지 않습니다 CTRL + C로 우아하게 종료 할 CTRL + Z이 프로그램에 나와 있는데 이것은 멋지지 않습니다. ps는 프로세스를 나열합니다. 아무나 할 수 있습니다.CTRL-C는 Java 프로그램에서 작동하지 않습니다
답변
유닉스에서는 명령 줄 프로그램이 ^C
으로 인터럽트하려고 할 때 어떤 일이 일어나는지보다 많은 제어를합니다. 터미널에 ^C
을 타이핑 할 때의 기본 효과는 커널이 SIGINT
신호를 포 그라운드 프로세스 그룹에 보내도록하고, 기본 동작 인 SIGINT
은 전송 된 프로세스를 죽이는 것이지만, 둘 모두 변경 될 수 있습니다.
문제의 가장 큰 원인은 Java 프로그램이 종료 전에 일부 정리를 수행하기 위해 SIGINT
을 가로 채고 있지만 신호 처리기가 버그가있어 프로세스가 실제로 종료하지 않는다는 것입니다. 두 번째로 가장 큰 원인은 이SIGINT
을 모두 무시한다는 것입니다. 그리고 가장 가능성이 낮은 원인은 터미널을 "원시 모드"로 설정하여 ^C
이 값 0x03을 가진 바이트를 표준 입력으로 전달하는 것입니다 (수행 한 경우 ^Z
도 아마 작동하지 않습니다).
프로그램의 소스 코드에 액세스 할 수있는 경우 버그가있는 신호 처리기를 수정하거나 신호 무시를 중지 할 수 있습니다. 그렇지 않으면, 당신은 일종의 크릭입니다. 정상 치명적인 신호 (SIGQUIT
)를 전송하는 ^\
(제어 백 슬래시)을 시도해 볼 수는 있지만 작동하지 않을 수도 있으며 작동하지 않을 경우 거대한 "코어 덤프" 파일을 제거하십시오.
오작동하는 프로세스를 없애는 확실한 방법은 신호 9 (SIGKILL
) 만 보내는 것입니다. 다른 치명적인 신호와는 달리, 그 신호를 가로 채거나 차단하거나 무시하는 것은 불가능합니다. 신호 9를 보낼 제어 키가 없습니다. ^Z
으로 프로세스를 일시 중지하거나 새 터미널 창/ssh 세션을 열고 ps
으로 프로세스 ID를 찾고 kill
명령을 사용해야합니다. 항상 kill PID
을 kill -9 PID
앞에 시도하십시오.
- 1. Java 주석이 작동하지 않습니다.
- 2. Java 타이머가 작동하지 않습니다.
- 3. java 명령이 작동하지 않습니다.
- 4. Java 메소드가 작동하지 않습니다.
- 5. Java - KeyListener가 작동하지 않습니다.
- 6. itext2.1.7 및 itext5.0.5가 동일한 Java 웹 응용 프로그램에서 작동하지 않습니다.
- 7. Java : JScrollPane이 GridBagLayout에서 작동하지 않습니다.
- 8. Java repaint가 올바르게 작동하지 않습니다.
- 9. Java : 인쇄 파일이 작동하지 않습니다.
- 10. Java DNS API가 작동하지 않습니다.
- 11. Java 객체 메소드가 작동하지 않습니다.
- 12. Java : str.replaceAll()이 작동하지 않습니다.
- 13. Android Java newline이 작동하지 않습니다.
- 14. Java JMenu 단축키가 작동하지 않습니다.
- 15. CreateProcess가 모든 응용 프로그램에서 작동하지 않습니다.
- 16. Perl 프로그램에서 wget이 제대로 작동하지 않습니다.
- 17. 특정 프로그램에서 출력 리디렉션이 작동하지 않습니다.
- 18. C# 응용 프로그램에서 JumpLists가 작동하지 않습니다.
- 19. iAd가 내 iPhone 응용 프로그램에서 작동하지 않습니다.
- 20. 내 ASP.Net 응용 프로그램에서 TreeNodeCheckChanged가 작동하지 않습니다.
- 21. AsyncPostBackTrigger가 내 응용 프로그램에서 작동하지 않습니다.
- 22. Java 메소드는 1.6에서 작동하지만 1.5에서는 작동하지 않습니다.
- 23. 수출 후 java 키리스트가 작동하지 않습니다.
- 24. java proguard : 최적화 후 라이브러리가 작동하지 않습니다.
- 25. getResources가 작동하지 않습니다/정의되지 않음 Java
- 26. Java getContentType()이 CSS와 함께 작동하지 않습니다.
- 27. Java 프로그램이 Solaris에서 ftp로 작동하지 않습니다.
- 28. AES java on usb 드라이브가 작동하지 않습니다.
- 29. Java 명령 lastModified()가 Clojure에서 작동하지 않습니다.
- 30. Java JVMTI가 -Xdebug -Xrunjdwp와 함께 작동하지 않습니다.
몇 가지 코드를 게시 할 수 있습니까? –