내가 사용하는 Python 프로그램에서는 디렉토리를 np.memmaps
활용하여 /tmp
대규모 배열을 처리합니다. 정기적으로 삭제하기 위해 사용할 때마다 이 코드를 실행합니다 /tmp
. rm -rf /tmp/*
그러나 최근에 내 코드가 작동을 멈추고 "버스 오류(코어 덤프)"가 발생했습니다.
이제 터미널에서 자동 완성을 사용해도 결과는 다음과 같습니다 bash: cannot create temp file for here-document: No space left on device
.
df -h
나는 타이핑이 나에게 범인을 주었다고 생각합니다 .
tmpfs 32G 32G 0 100% /tmp
하지만 달리기는 sudo rm -rf /tmp/*
나를 다시 돌아오게 할 뿐이야
tmpfs 32G 30G 1,9G 94% /tmp
무슨 일이 일어나고 있고 어떻게 해결하는지 아시나요?
답변1
이 명령은 진실을 알려줄 것입니다.
sudo lsof -n | grep /tmp |grep deleted
Unix에서는 삭제된 파일이 파일 시스템에 여전히 존재하며 해당 파일을 사용하는 응용 프로그램이 파일을 닫거나 응용 프로그램이 종료될 때까지 공간을 차지합니다.
따라서 삭제된 파일이 열려 있는 프로세스를 찾아 다시 시작하거나 종료하십시오.
위의 파일 설명자를 사용하여 애플리케이션을 종료하지 않고 강제로 닫는 것이 좋지만 Linux 커널은 revoke()
시스템 호출을 지원하지 않습니다.https://bugzilla.kernel.org/show_bug.cgi?id=14505