文件是否仍在被 php 进程使用

文件是否仍在被 php 进程使用

我有一个 3.2G 的文件/tmpphpvXcoZn我需要删除它。因此我想知道它是否仍在使用但我输入的命令没有返回任何内容:

/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

相关内容