2010-06-10 4 views
1

특정 프로세스가 Java에서 "멈추는"경우를 알 수있는 방법이 있습니까?특정 프로세스가 멈췄을 때 어떻게 알 수 있습니까?

내 Java 프로그램에서 외부 응용 프로그램을 실행 중입니다. 때때로이 앱이 중단됩니다. 나는 내 코드에서 그것을 죽일 수 있도록이 앱이 작동을 멈출 때를 알고 싶다. 내 코드에서 다른 스레드의 모니터링 유형을 생각 중입니다.

모든 toughts?

+0

'걸림'이 무엇을 의미하는지에 대한 엄격한 정의가 있습니까? 교수형과 느린 것의 차이점을 어떻게 말해 줄 수 있습니까? – luke

+0

실행중인 OS는 무엇입니까? – Oli

+0

나는 실제로 정확하게 모른다. 이 응용 프로그램은 dev 빌드이므로 일반적으로 중단됩니다. 나는 프로세스의 상태를 모니터링하려고 생각하고 있었다. Windows 작업 관리자에서 상태가 "응답하지 않음"이라고 말할 때와 비슷한 점. Mac에서도 작동해야합니다. – Omar

답변

0

첫 번째 질문은 "붙어서"무슨 뜻인지 물어 보는 것입니다. 그것은 무한 루프에 있습니까? 교착 상태입니까?

질문의 본질적으로 나는 당신이 모를 것으로 추측하고 있지만, 당신이하고 싶은 것은 그것을 끊을 때 그것을 죽이는 것이라면, 파일에 출력물을 주기적으로 쓰게 할 수 있습니다. 또 다른 프로세스는이 파일을 모니터 할 수 있으며 출력이 보이지 않으면 몇 마디가 지나면 죽일 수 있습니다.

+0

좋은 해결책처럼 들리지만 코드에 액세스 할 수 없어 실행중인 앱을 수정할 수 없습니다. – Omar

+0

응용 프로그램을 수정할 수없고 응용 프로그램이 다른 세계와 어떻게 상호 작용하는지 또는 중단 된 것을 어떻게 알지 못한다면이 질문에 답할 수 없다고 생각합니다. – danben

+0

답해 주셔서 감사합니다. Java OS에서 프로세스의 상태를 알 수있는 방법이 있다고 생각했습니다. – Omar

1

는 자바 6에서 당신은 모든 스레드에 대한 스레드 덤프를 얻을 수 있습니다. 이 순간마다 스냅 샷을 찍으면 당신은 어떻게되는지 알 수 있습니다.

관련 문제