代码之家  ›  专栏  ›  技术社区  ›  Brian Lacy

为什么我不能从PHP守护进程的子进程中删除文件?

  •  2
  • Brian Lacy  · 技术社区  · 14 年前

    我正在使用下面提供的php守护程序类构建一个简单的php守护程序脚本:
    http://www.phpclasses.org/browse/file/8958.html

    无论好坏,我都会坚持使用这个类,而且我没有太多时间来完成这项工作;因此,为了向守护进程发出自定义命令,我只使用了/tmp目录中的命令文件。但是,在守护进程处理完其中包含的任何命令之后,我需要删除此文件。

    但是,当我试图在PHP中“取消链接”文件时,取消链接操作失败,文件仍然存在。我知道这不是权限问题。事实上,我非常确定这与守护进程的每个“迭代”都是作为子进程生成的这一事实有关,并且该子进程必须以某种方式没有删除文件的权限。

    我的问题是:为什么php不能删除这个文件,我该怎么做?

    1 回复  |  直到 14 年前
        1
  •  1
  •   prodigitalson    14 年前

    /tmp 通常设置了粘性位,所以我相信只有存放文件的用户才能删除它。您的子进程是否与父进程(apache、www等)在同一用户下运行?哪个进程实例创建了该文件?