tags:

views:

22

answers:

2

I need to check whether or not an administrative script is already running on Apache, if not then it runs. Currently, I'm loading the server-status contents and checking against it but if I'm checking whether or not the current script is already running it will always return true because I'm running the script to check on itself. Does that make sense?

Basically in "script.php" is something like:

if($this_is_already_running) { exit; }
else { run it }

but it is currently running while it checks on itself so it will always return true.

Any help is greatly appreciated.

+2  A: 

I would use a lock file. Your script would write a file into a pre-defined location, and lock it. Additional instances of your script would check the lock, and if it is in place, exit.

See flock()

the manual has some good examples.

Pekka
This would probably work best except I think I'm leaning towards making this a function that will live in an include file to be used in numerous scripts to check against themselves and others. Thanks though, good stuff
ThrivingKings
+1  A: 

What about getting the script's PID?

Here's a class for it: http://www.electrictoolbox.com/check-php-script-already-running/

MattB