Re: Bug #10744: session_start() "serializes" exec

From: Date: Thu, 10 May 2001 15:15:21 +0000
Subject: Re: Bug #10744: session_start() "serializes" exec
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-54657@lists.php.net to get a copy of this message
> Try this in a script: > <?php > exec( "/bin/sleep 30 >/dev/null 2>&1 </dev/null &" ) ; > echo "Done !!" ; > ?> > > Now call it from the browser several time (Reload button). If you type a ps ax command you will > see several "sleep 30" processes. Wait all the processes to stop. > > Now put session_start() as the first line. Press RELOAD: it completes OK. Now press RELOAD > again: it hangs !!! It waits for the sleep to terminate before starting the next !! So if you press > RELOAD 10 times you need to wait 300 seconds !! > > Is it a normal behaviour ? How can I have a process completely in the background ? That is by design (for file based session storage at least). See http://www.php.net/bugs.php?id=6287&edit=1 and http://bugs.php.net/?id=10675&edit=1 All access to session variables in PHP4 is serialized. If you want to start some daemon from inside your php script make it to close all unused file handles at startup or close the session before exec(). oleg

« previous php.dev (#54657) next »