Linux

文件是否仍被 php 程序使用

  • September 10, 2022

/tmp呼叫了一個 3.2G 文件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-data``sudo 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"

您是否有其他命令知道它是否仍在使用?

rm在其他地方仍然打開的文件對仍然打開的程序沒有影響。只是不能再通過文件名打開它——一旦它關閉,它的儲存空間就可以被釋放。見man 2 unlink

引用自:https://unix.stackexchange.com/questions/716704