0
我有被作爲後臺進程運行的PHP腳本。 8個線程立即運行。PHP和克龍 - CHDIR不工作
爲了確保8個線程始終運行,下面的PHP腳本是從cron,這是在同一目錄中daemon.php腳本運行:
<?php
chdir('/root/fb');
if (file_exists('pause')) die();
exec('ps ax | grep -v grep | grep daemon.php',$output);
$output=implode("\n",$output);
$num=8-substr_count($output,'daemon.php');
if ($num>0)
{
for($run=0; $run<$num; $run++)
{
exec('php daemon.php > /dev/null 2>&1 &');
sleep(20);
}
}
?>
上面會很樂意運行daemon.php腳本,但後來發生了一些奇怪的事情,daemon.php腳本本身會認爲它有時不在其他時間。具體來說,我使用了很多exec
函數來執行其他應用程序,其中很多(但不是全部)認爲它們回到了原始目錄中,而不是在/root/fb
中。
如果我從目錄內直接執行daemon.php php daemon.php
,那麼這不會發生,並且一切都按預期工作。
非常關行爲。我該如何設置它,以便從cron作業完全相同,直到從其目錄內直接執行腳本?