2011-03-02 3 views
6

마지막 부팅이 Windows에서 전원 장애가 발생했는지 감지 할 수 있습니까?Windows가 충돌 또는 전원 장애 후 재부팅 할 때 감지

내 검색의 이유는 내 서비스가있는 디스크에서 자주 수정하는 파일을 언제 다시 검색해야 하는지를 아는 것입니다.

정상적인 시작이있는 경우 종료가 원활 해지고 메모리 내 파일 버퍼에 있던 데이터가 디스크로 플러시되었음을 확신 할 수 있습니다.

답변

1

간단한 구현으로 CreateFile을 FILE_FLAG_DELETE_ON_CLOSE (잠시 후 FlushFileBuffers가 뒤따라야 함)로 작동하지 않을 수 있습니까?

시스템이 정상적으로 종료되면 응용 프로그램이 종료되고 파일 핸들이 닫히므로 OS가 파일을 삭제합니다.

전원이 끊어 지거나 세상이 끝나면 OS는 핸들을 닫거나 파일을 삭제할 기회를 얻지 못합니다. 따라서 시스템이 다시 시작된 후에도 파일이 남아 있습니다.

+0

이것은 Linux에서도 유용 할 수 있습니다. 재미 있습니다! –

5

전원 오류 감지는 비정상 종료의 한 가지 가능한 원인을 다룹니다. 이렇게하는 안전한 방법은 시작할 때 마커 파일을 만든 다음 완전히 종료 할 때 마커 파일을 제거하는 것입니다. 다음 시작시 마커 파일이있는 경우 서비스가 정상 종료되지 않았 음을 알 수 있습니다.

전원 손실 만 확인하려는 경우 event log을 읽으면 마지막 종료가 예상치 못한 것인지 알 수 있습니다.

2

대신 공정이 정상적으로 종료되었는지 확인하지 않으시겠습니까? 레지스트리 나 파일 시스템에 특수 마커를두면 프로세스가 여전히 작동하고 gracefull 종료시 삭제됩니다. 그런 다음 시작할 때마다 확인하십시오.