2

http://www.phpclasses.org/browse/file/8958.htmlで提供されているphpデーモンクラスを使用して、単純なPHPデーモンスクリプトを作成しています。

私は良くも悪くもこのクラスで立ち往生していて、これを成し遂げる時間はあまりありません。したがって、デーモンにカスタムコマンドを発行するために、/tmpディレクトリにあるコマンドファイルを使用しています。ただし、デーモンがそこに含まれるコマンドを処理した後、このファイルを削除する必要があります。

ただし、PHPでファイルを「リンク解除」しようとすると、リンク解除操作が失敗し、ファイルが残ります。私はそれが許可の問題ではないという事実を知っています。実際、これはデーモンの各「反復」が子プロセスとして生成され、サブプロセスがファイルを削除する権限を持っていない必要があるという事実と関係があると確信しています。

私の質問:PHPがこのファイルを削除できないのはなぜですか?また、それに対して何ができますか?

4

1 に答える 1

1

/tmp通常はスティッキービットが設定されているので、そこにファイルを置いたユーザーだけがそれを削除できると思います。子プロセスは親プロセスと同じユーザー(apache、wwwなど)で実行されますか?どのプロセスインスタンスがファイルを作成しましたか?

于 2010-01-20T17:02:27.877 に答える