Linux
文件是否仍被 php 程序使用
我
/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
。