Vérifier si un script est en cours d’exécution sur Apache via PHP

Je dois vérifier si un script administratif est déjà en cours d’exécution sur Apache, sinon il s’exécute. Actuellement, je charge le contenu de l’état du serveur et je vérifie si c’est le cas, mais si je vérifie si le script actuel est déjà en cours d’exécution, il retournera toujours la valeur true car j’exécute le script pour vérifier lui-même. Cela a-t-il du sens?

Fondamentalement dans “script.php” est quelque chose comme:

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

mais il est en cours d’exécution pendant qu’il vérifie sur lui-même afin qu’il retournera toujours vrai.

Toute aide est grandement appréciée.

Qu’en est-il de l’obtention du PID du script?

Voici une classe pour cela: http://www.elecsortingctoolbox.com/check-php-script-already-running/

Je voudrais utiliser un fichier de locking. Votre script écrirait un fichier dans un emplacement prédéfini et le verrouillerait. Des instances supplémentaires de votre script vérifieraient le verrou, et s’il est en place, quittez.

Voir le flock()

le manuel contient de bons exemples.