On 15 July 2010 16:51, Leonardo <leobasilio@xxxxxxxxx> wrote: > Hi everybody. I need to use exec() to run a background php script, but it's > not working properly. Take a look at this sample: > > a.php > <? > > echo ' File A (1) '; > > exec('php b.php > output.txt &'); > > echo ' File A (2) '; > > ?> > > b.php > <? > > echo 'File B'; > > ?> > > output.txt (begins with 64 null bytes before the following) > File A (2) > > I would expect the output's content to be "File B", but it's not happening. > I came across this problem because I have a mailing application which > stopped working after being moved to a new host. The messages were sent by a > background script launched on user's demand. Like this: > > SendMessages.php > <? > ... > exec('php Daemon.php -x ' . $USERID . ' > /dev/null &'); > ... > ?> > > Now it won't work, and I got no clue about what's going on. What now? > > Thank you. > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > I'm on Windows XP SP3 and using PHP 5.3.3RC3 (cli) (built: Jul 15 2010 02:00:11) Copyright (c) 1997-2010 The PHP Group All seems to work as expected. <?php // TestA.php echo ' File A (1) '; exec('C:\\php5\\php.exe -f Z:\\TestB.php > Z:\\output.txt'); echo ' File A (2) '; ?> <?php // TestB.php echo 'File B'; ?> And because of my setup matching the docs at [1], I can actually use ... <?php echo ' File A (1) '; exec('TestB > output.txt'); echo ' File A (2) '; ?> as long as TestA.php and TestB.php are in the same directory. So, initially, this looks like a non win32 issue (windows works - see !!!) Regards, Richard Quadling. [1] http://docs.php.net/manual/en/install.windows.commandline.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php