Я пытаюсь проверить, если процесс уже запущен с использованием временного файла demo.lock:Проверяется процесс PHP уже работает
demo.php:
<?php
$active=file_exists('demo.lock');
if ($active)
{
echo 'process already running';
}
else
{
file_put_contents ('demo.lock', 'demo');
sleep(10); //do some job
unlink ('demo.lock');
echo 'job done';
}
?>
однако Безразлично Кажется, что работает: если я дважды открываю demo.php, он всегда показывает «выполненную работу», может быть, потому, что он считает это одним и тем же процессом? есть ли способ сделать это? Я также пробовал с getmypid() с аналогичными результатами.
Thanks
Я хотел бы предложить вам использовать именованный мьютекс для такой вещи, но я не знаю, если таковые имеются в PHP .. –
также , какая у вас операционная система? – zneak
Я пробовал это как на окнах, так и на машинах linux, с такими же результатами – Borgtex