2017-10-23 1 views
-1

나는 삭제 된 파일을 열어 놓은 상태로 엄청난 양의 디스크 공간을 소비하는 자바 프로세스를 실행 중입니다. 파일의 위치는/tmp입니다 (즉, 해당 파일을 독점적으로 생성하지는 않습니다). 그런 사건의 이유와 그것을 극복하는 방법은 무엇일 수 있습니까?삭제 된 파일은 열린 상태로 유지됩니다. 디스크 공간이 많이 소모됩니다.

+1

파일을 정확히 삭제 하시겠습니까? – Sorontur

+0

삭제 된 파일을 여는 방법은 무엇입니까? – Alex

+0

@Sorontur .. 파일을 지우지 마라. jus가 사건을 알기 위해 왔고 그 문제를 해결하고 싶다. – kalyan

답변

0

다른 프로세스가 해당 파일을 삭제하는 동안 프로세스가 여전히 파일을 사용하고있는 경우 Linux에서이 문제가 발생할 수 있습니다. 파일은 삭제 된 것처럼 보이지만, 프로세스가 여전히 파일 설명자를 사용하는 한 커널은 공간을 비우지 않습니다.

공간을 해제하려면 파일 설명자를 닫도록 프로그램에 지시해야합니다. 이것은 전적으로 프로그램 설계에 달려 있으며 심지어 가능하지 않을 수도 있습니다. 예를 들어, 이것이 워드 프로세서 인 경우 주 메뉴에서 파일 -> 닫기를 선택합니다.

파일을 닫으라는 프로그램을 "알릴"수없는 경우 마지막 옵션은 프로세스를 종료하는 것입니다.

놀고 싶다면 gdb과 같은 디버거를 사용하여 처리하고 디스크립터를 찾아 수동으로 닫을 수 있습니다. 이로 인해 프로그램이 중단되거나 예기치 않게 작동 할 수 있습니다.

파일이 갑자기 닫히는 모든 경우에 파일의 내용이 손상 될 수 있습니다.

Windows에서 다른 잠금 의미를 사용하고 열려있는 경우 파일을 삭제할 수 없기 때문에 Windows에서이 문제가 발생할 수 있다고 생각하지 않습니다.

관련 문제