Por que não posso excluir um arquivo do processo infantil de um daemon PHP?
Pergunta
Estou construindo um script de daemon PHP simples, usando uma aula de daemon PHP fornecida em:
http://www.phpclasses.org/browse/file/8958.html
Estou preso a esta aula para melhor ou para pior e não tenho muito tempo para fazer isso; Portanto, para emitir comandos personalizados para o daemon, estou apenas usando um arquivo de comando localizado no diretório /tmp. No entanto, preciso excluir esse arquivo depois que o daemon processou quaisquer comandos nele contidos.
No entanto, quando tento "desvincular" o arquivo no PHP, a operação desvinculada simplesmente falha e o arquivo permanece. Sei que não é um problema de permissões. Na verdade, tenho certeza de que isso tem algo a ver com o fato de que cada "iteração" do daemon é gerada como um processo infantil e que o subprocesso deve de alguma forma não ter permissão para excluir arquivos.
Minha pergunta: por que o PHP não pode excluir esse arquivo e o que posso fazer a respeito?
Solução
/tmp
Geralmente tem o conjunto de bits pegajoso, então acredito que apenas o usuário que depositou o arquivo pode excluí -lo. Os processos infantis são executados sob o mesmo usuário do processo pai (Apache, www, etc.)? Qual instância do processo criou o arquivo?