Re: Ensure only one instance of a script is running

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux