2012-08-04 2 views
1

컴퓨터의 주어진 프로세스가 유휴 상태인지 확인하려는 Java 응용 프로그램에서 작업 중입니다. 예 : 컴퓨터에서 다운로드 프로세스를 시작하면 응용 프로그램이 프로세스 (프로세스)를 모니터링하고 끝났을 때주어진 프로세스가 유휴 상태인지 찾는 방법이 있습니까?

+0

모니터 할 수있는 직접적인 방법이 없다고 생각하지만이 종류의 솔루션을 찾으러 간다면 어떻게 될까 ??? 나는 그 프로세스의 메모리 사용량을 쉽게 모니터 할 수 있으며 메모리 사용량이 일정 시간 동안 일정하다면 프로세스가 유휴 상태라고 결론을 내릴 수있다 ???? –

+0

이것은 프로그램에 따라 다르지만 총 CPU 시간 (현재 CPU 사용률 아님)이 메모리 사용량보다 더 신뢰할 수있는 메트릭으로 보입니다. – erickson

답변

0

대부분의 운영 체제는 CPU 또는 I/O와 같은 프로세스의 활동을 모니터링하는 사용자 명령을 제공합니다. 또는 상위 레벨에서, 프로세스 식별자에 의해 프로세스의 상태 (실행 여부)를 알 수 있습니다. 당신은 exec이 도구를 자바에서 사용할 수 있지만 코어 자바에는이 작업을 수행하는 데 필요한 도구가 없으며 이러한 목적을 위해 어떤 라이브러리도 알고 있지 않습니다.

그러나 "유휴 상태"로 인해 프로세스를 죽이는 것을 생각하면 일반적으로 안전하지 않습니다. 문제의 과정에 대해 충분히 알아야만 죽일 수 있는지 확인해야합니다. 그 사실을 많이 알고 있다면 깨끗하게 셧다운 할 수있는 방법이 있음을 알게 될 것입니다.

0

다른 프로세스에서 프로세스를 시작하면 Process.waitFor()로 끝나는 시점을 감지 할 수 있습니다. 종료 코드를 사용할 수도 있습니다.

관련 문제