One of two things is happening:

- PHP is crashing, maybe a memory leak, etc.


- That while(true) loop is exiting, and the script is completing.

Would be interesting to know which, try adding this after the loop:
$fp = fopen('/tmp/test','w');
fputs($fp, 'My script left the loop and exited cleanly.  True ==
Back on my first point, have you kept an eye on the memory usage over
the 3 hours?  If your version of PHP has a memory leak with while() or
sleep() (would be odd), a bazillion iterrations could break the PHP
defined memory limit (8M by default) and cause it to exit abruptly.

Are you capturing the output anywhere?  For example, in Linux is it
being run from cron or another script?  Try redirecting STDOUT and
STDERR somewhere useful, i.e.:

php my_php_script > /tmp/scriptoutput 2>&1

(2>&1 means "output stream 2 [stderr] to the same place as stream 1")

Hope any of these crazy ideas are helpful...
- Kyle

Kyle Smith
Unix Systems Administrator

-----Original Message-----
From: Robert Cummings [] 
Sent: Thursday, June 11, 2009 8:25 AM
To: Ford, Mike
Subject: Re: [PHP] Why [?php while (true) { sleep(5); } ?] dies on CLI?

Ford, Mike wrote:
> On 11 June 2009 12:00, Ashley Sheridan advised:
>> On Thu, 2009-06-11 at 10:47 +0000, Jean-Pierre Arneodo wrote:
>>> Hi!
>>> I'm stuck.
>>> I don't understand why the php CLI dies after 3 hours in my script.
> Any
>>> idea to solve? Thanks
>>> PHP 5.2.9-0.dotdeb.2 with Suhosin-Patch 0.9.7 (cli) (built: Apr  7
> 2009
>>> 20:06:36) Linux ubuntu  2.6.24-19-server #1 SMP Wed Jun 18 14:44:47
>>> 2008 x86_64 GNU/Linux
>>> Conf [php.ini]
>>> max_execution_time=0
>>> <?php
>>> while (true) {
>>>         sleep(5);
>>> }
>> The while loop will continue executing until its condition is false.
> As
>> you've got a boolean true as the condition, it will never end.
> I think he realises that. His question is why "never" equates to 3 
> hours in his environment.

Shouldn't be max execution time issue if he's running the CLI. Maybe
account limits? Maybe the above snippet isn't what's really happening...

I mean what purpose would the above script serve for 3 hours? Looks like
it's been dumbed down for us dummies on the list.

Application and Templating Framework for PHP

PHP General Mailing List ( To unsubscribe, visit:

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to