如何终止 PHP 进程并删除无法删除的文件?

如何终止 PHP 进程并删除无法删除的文件?

我正在尝试删除服务器上的一个文件,但是 PHP 仍然很忙,不允许我删除它...FTP 说抱歉,无法执行:

> DELE ml.txt
< 550 ml.txt: Permission denied
> PORT 190,028,4,31,129,100

> SITE CHMOD 777 ml.txt
< 550 ml.txt: Operation not permitted

为了终止该进程或者删除该文件,我们该怎么做呢?

答案1

尝试,ssh => 以 root 身份登录,尝试重命名文件,然后将其删除。

答案2

为什么不直接停止网络服务器然后重新启动呢?

如果直接运行 php,只需使用 top 找到进程并将其终止。

top | grep "php"

找到进程 ID,然后

kill "processId"

或者更简单一点:

killall php

答案3

  1. 以普通用户身份登录 ssh
  2. 然后输入su -
  3. 它会提示您输入 root 密码,然后输入该密码。
  4. 您需要通过以下方式更改文件的所有权chown -r change_with_your_username:change_with_your_usergroup change_with_full_path_to_the_file
  5. 然后尝试通过 ftp 或 ssh 删除它,它应该可以工作。

如果上述步骤不起作用,请尝试此操作

  1. 如果它被锁定,如在 RCS(版本控制系统)或 SCCS(源代码控制系统)中,您(希望是所有者)可以解锁它,rcs -u YourFileName查看man rcs它是否安装在您的系统中。请参阅man sccs了解如何使用 sccs 解锁。不幸的是我不知道。
  2. 如果您的文件正在使用中,您可以使用fuser -m TheFileName或保存它的目录名称fuser是文件用户来查看它。查看man fuser如何终止使用您的文件的进程。我认为是的fuser -km FileName。最好自己调查一下。如果您知道哪个进程正在使用您的文件,您可以使用kill命令终止该进程。
  3. 用于lsattr YourFileName查看文件的属性。可以使用命令将其设置为不可变或不可删除chattr -i filename,或者如果是这样,您可以使用查看或chattr -u filename执行相反的操作以了解更多详细信息。并附带较新的系统。我的 fedora2 有它。旧系统没有chattr +i +u filenameman chattrman lsattrchattrlsattr

相关内容