가끔 디버깅을 하다 보면 딴 프로세스가 특정 파일 핸들을 가지고 있어서 삭제하지 못할 경우가 종종 발생한다. 이때 어떤 프로세스가 해당 파일/디렉토리 핸들을 가지고 있는지만 알면 쉽게 이 문제를 해결할 수 있다.
그래서 좀 쉬운 방법을 찾아봤는데, 역시나 stack overflow에 정리된 버전이 있었다.
몇가지 프리웨어/쉐어웨어 유틸리티를 제안하는 사람들도 있었는데, 개인적으로 특화된 전용 유틸리티보다는 SysInternals(마이크로소프트에 합병된 것으로 알고 있는데, 정확하진 않음)의 유틸리티를 선호하는지라 이 방법을 선택했다.
먼저 코맨드라인에서 Handle을 실행한다. 그러면 프로세스별 핸들 목록이 모두 나온다.
이 결과에서 삭제하려는 파일/디렉토리를 붙잡고 있는 프로세스를 찾을 수 있다.
특정 프로세스를 알아냈으면 해당 프로그램을 프로세스 관리자에서 종료하거나 Process Explorer로 강제 종료시키면 된다.
SysInternals의 핸들(Handle.exe) 유틸리티.
http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx
SysInternals의 Process Explorer :
http://technet.microsoft.com/en-us/sysinternals/bb896653
'2. 소프트웨어 개발 관련' 카테고리의 다른 글
CEF1과 CEF3의 차이점. (0) | 2013.11.05 |
---|---|
두쪽 PDF를 한쪽 단위로 나누기. (0) | 2013.10.23 |
다른 프로그램이 핸들을 가지고 있어서 삭제를 못할 경우. (0) | 2013.10.22 |
[POSA1] 크롬 네트워크 성능 최적화 - (1) 기본배경. (0) | 2013.10.17 |
모던 앱 개발시 개발언어 선택은? (0) | 2013.09.18 |
Map Editors (0) | 2013.06.11 |