Предотвращение запуска нескольких копий скрипта

ZN

Новичок
Tor
а как вы хотите узнать, что скрипт работает? в смысле как вы собираетесь отличать нормальную работу от зависания? определить, работает скрипт или висит можно по каким-то его действиям: запись в базу, в файл и т.п.
 

Tor

Новичок
а как вы хотите узнать, что скрипт работает? в смысле как вы собираетесь отличать нормальную работу от зависания? определить, работает скрипт или висит можно по каким-то его действиям: запись в базу, в файл и т.п.
во-первых, задача, повторяю, не дать запуститься второй копии, а не проверить работу первой
разница заметна?

во-вторых, если первая копия зависла, то нужно разбираться с зависанием, а не запускать вторую копию, которая зависнет по тем же причинам, что и первая
 

White Rabbit

белый кролик
А разве не достаточно просто блокировать скриптом файл?
А при запуске скрипта, проверять наличие блокировки?
Блокировка ведь будет снята после завершения работы.
Другое дело, что необходимо будет как0то удостовериться, что
файл именно заблокирован, а не что-то другое.
Можно ли расчитывать, что flock(fp, LOCK_EX) гарантированно вернет false, и только в случае если файл заблокирован?
 

Andreika

"PHP for nubies" reader
Tor
хех.. так и не увидел 101 способ предотвращение запуска нескольких копий скрипта через сокеты... а жаль :(
 

ZN

Новичок
Tor
разница заметна
но вот для того, чтобы "не дать запуститься второй копии", как раз и нужно "проверить работу первой"
>нужно разбираться с зависанием
что вы имеете ввиду? во-первых, для того, чтобы разбираться с зависанием, нужно как-то определить, что оно возникло, как это сделать - отдельный вопрос
во-вторых, кто будет разбираться с зависанием? админ будет раз в минуту чекать? или другой скрипт? если другой скрипт(прога), то по каким признакам он будет определять зависание?
 

sacred

Новичок
почему в самом начале скрипта нельзя проверять флаг установленный в базе?

сейчас наверно глупость скажу:
тот же флаг можно проверять другим скриптом, который будет ответственнен за проверку и запуск главного скрипта.
 
Сверху