Test for a lock file when the script starts, and remove it when the script ends. This isn't 100% reliable, but it's the typical solution to this problem. If the script fails, the lock file may not be removed (ever have a Mozilla browser crash and tell you the default profile is locked?), so be careful with your error handling!

<?php

// test for lock file
if ( !$f = fopen( 'lock', 'r')) {
        // touch the lock file
        $f = fopen( 'lock', 'w');
        fwrite( $f, 'lock');
        fclose( $f);

} else {
        // lock file exists; another instance must be running (we hope)
        echo 'Error: An instance of this script is already running!';
        exit( 1);

}


/* script stuff */


// remove the lock file for the next instance unlink( 'lock');


?>

Shaun wrote:
Hi,

I have a script that inserts data from files uploaded to our server. I need to make sure that only one instance of this script runs at anyone time, can anyone tell me how I can do this?

Many thanks

-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to