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

时间:2013-05-20 22:37:46

标签: php unix background-process

我正在尝试使用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。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分: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);

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