ThrivingKings
ThrivingKings

Reputation: 73

Checking whether or not a script is running on Apache via PHP

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.

Upvotes: 1

Views: 739

Answers (2)

MattB
MattB

Reputation: 724

What about getting the script's PID?

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

Upvotes: 1

Pekka
Pekka

Reputation: 449783

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.

Upvotes: 2

Related Questions