window['ym']
Да, есть. Называется flock.
Использовать примерно так в кроне: 0 0 * * * root flock -n /tmp/somefile.lock "somecsript.sh"
Второй запуск команды flock -n /tmp/somefile.lock "somecsript.sh" уже не случится до тех пор, пока первый инстанс работает.
В somescript.sh, соответственно, пихаете всё то, что запускается у вас сейчас (chmod +x на скрипт не забудьте).
<?php
private function LatLngDist($p, $q) {
$R = 6371; // Earth radius in km
$dLat = (($q[0] - $p[0]) * pi() / 180);
$dLon = (($q[1] - $p[1]) * pi() / 180);
$a = sin($dLat / 2) * sin($dLat / 2) +
cos($p[0] * pi() / 180) * cos($q[0] * pi() / 180) *
sin($dLon / 2) * sin($dLon / 2);
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
return $R * $c;
}