PHP 프로세스에서 파일을 계속 사용하고 있습니까?

PHP 프로세스에서 파일을 계속 사용하고 있습니까?

3.2G 파일이 있는데 /tmp삭제 phpvXcoZn해야 합니다. 그래서 아직 사용되고 있는지 궁금합니다. 그러나 입력한 명령은 아무것도 반환하지 않습니다.

/tmp$ bigfile=phpvXcoZn
/tmp$ ll -h $bigfile
-rw------- 1 www-data www-data 3.2G Aug 25 09:49 phpvXcoZn
/tmp$ cd
$ sudo lsof | grep $bigfile
$ sudo fuser -avm /tmp 2>&1 | grep $bigfile
$ sudo ls -l /proc/*/fd/* 2>/dev/null | grep $bigfile
$ 

EDIT0: @MarcusMüller가 제안한 대로 파일 링크를 해제하여 파일을 닫을 때 공간 사용량을 확보할 수 있지만 unlink해당 파일이 속한 파일을 사용할 수는 없습니다.www-datasudo su

$ sudo su www-data -c "unlink /tmp/phpvXcoZn"
This account is currently not available.
$ grep www-data /etc/passwd
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

이 명령은 작동합니다: sudo -u www-data bash -c "unlink /tmp/phpvXcoZn"

아직 사용되고 있는지 알 수 있는 다른 명령이 있습니까?

답변1

rm아직 다른 곳에 열려 있는 파일을 삭제해도 해당 파일이 열려 있는 프로그램에는 아무런 영향이 없습니다. 더 이상 파일 이름으로 열 수 없으며 일단 닫으면 저장 공간을 비울 수 있습니다. 바라보다 man 2 unlink.

관련 정보