使用unix运行php脚本作为后台进程


Running a php script as a background process using unix

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

#!/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

但是没有写入到demon1 .log中。谁能告诉我我哪里做错了?

尝试不同的方法。

$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);

注意文件的不同名称。只是要确保你使用的是一个新文件。如果可以,用您想要的文件进行测试。