문제

Eclipse RCP GUI 애플리케이션의 명령 줄 버전이있어 동일한 플러그인을 많이 사용할 수 있습니다 (통합 테스트에 편리합니다). 한 가지는 서버에 연결하고 물건을 요청하고 대화식 루프를 시작하는 것입니다. 종료하려면 GUI 앱 사용자가 루프를 중지하고 응용 프로그램을 닫을 수 있습니다.

내 명령 줄 앱에서 응용 프로그램을 "닫는"가장 분명한 방법은 Ctrl-C입니다! 그러나 이로 인해 출구 신호를 캡처 할 수있는 경우 정리할 수있는 서버에 "세션 크루드"가 남습니다. CRUD는 결국 타임 아웃이나 무엇이든하지만 깨끗하게 분류 할 수 있다면 좋을 것입니다.

그렇다면 Eclipse RCP 응용 프로그램에서 킬 신호를 캡처하기위한 옵션은 무엇입니까? 도움이된다면 이것은 Linux에 따라 다릅니다. 그러나 나는 SWT 플러그인을로드하지 않습니다. CTRL-C 명령 줄을 CTRL-C에서는 "Main Loop"Plugin.stop ()이 호출되지 않습니다. Python의 Keyboardinterrupt와 같은 것은 Ace입니다!

도움이 되었습니까?

해결책

대체 접근 방식을 찾았습니다 - 끝이 도착했을 때 실행되는 셧다운 후크를 추가합니다 ...

    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            System.out.println("The end.");
        }
    });

다른 팁

Bash 's를보세요 trap 내장. Ctrl-C의 신호는 Sigint이지만 Sigterm과 Sighup도 포획하고 싶을 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top