1

我正在尝试使用 unix 将名为 daemon.php 的 php 脚本(如下)作为后台进程运行。

#!/usr/bin/php
<?php
$count = 0;
while(true){
    $count = $count + 1;
    file_put_contents('daemon1.log', $count, FILE_APPEND);
    sleep(1);  
}
?>

如果我使用下面的命令在前台运行它

php daemon.php

文件 deamon1.log 开始被写入。另外,如果我输入命令:

ps | grep php

我得到了输出

10573 ttys000    0:00.20 php daemon.php

如果我尝试使用命令将其作为后台进程运行

php daemon.php &

我把控制台拿出来

[1] 10584

和命令

ps | grep php

退货

10584 ttys000    0:00.02 php daemon.php

但是没有任何东西写入 deamon1.log。谁能告诉我我做错了什么?

4

1 回答 1

0

尝试不同的方法。

$file_handler = fopen( 'daemon1tempname.log', 'a+') or die ('Can not work with the File!');

$count = 0;
while(true){
    $count = $count + 1;
    fwrite($file_handler, "Test {$count}\n" );
    sleep(1);  
}
fclose($file_handler);

注意文件的不同名称。只要确保您使用新文件即可。如果可行,请使用您想要的文件对其进行测试。如果这不起作用,那么您知道这是一个权限问题。

于 2013-05-22T08:16:19.353 回答