Master-X
Форум | Новости | Статьи
Главная » Форум » Поисковая и контекстная реклама » 
Тема: Запрет одновременного запуска скрипта php
цитата
06/07/07 в 09:57
 Sterx
как сделать?
чтобы в текущий момент работала одна копия и все
цитата
06/07/07 в 10:14
 Salvator
создай lock-файл, при старте скрипта проверяй его наличие, если есть - выход; соответственно, по завершении работы скриптаудалять лок.
цитата
06/07/07 в 10:26
 Sterx
не вариант
скрипт порой прерывается
цитата
06/07/07 в 10:34
 Salvator
значит, копай в сторону семафоров.
(hint:sem_get)
только не уверен, что они будут под всеми платформами работать
цитата
06/07/07 в 10:45
 brainstorm
Почитать на тему функции flock в пхп

создать локфайл доступный на запись апачу. и вперед.

4 строчки кода
цитата
06/07/07 в 11:24
 ghood
Sterx писал:
не вариант
скрипт порой прерывается

тогда нужно делать так, чтобы перед тем, как сложить чешки, скрипт подчищал лок файлы.
цитата
07/07/07 в 12:55
 Sterx
как получить PID нашел - posix_getpid
а как проверить на активность?
цитата
07/07/07 в 13:48
 Sterx
posix_kill
возвращает false при невозможности послать сигнал процессу
diff:
спасибо, действительно просто
цитата
07/07/07 в 23:07
 webboxxx
попробуй вот так:

Код:
$filename = 'filename.php';
exec("ps -auxww | grep $filename | grep -v grep",$output,$code);
if($code!=0 && $code!=1)
{
    trigger_error("Unable to 'ps -auxww | grep $filename | grep -v grep'. Error code: $code<br>",E_USER_ERROR);
}
if($output) echo 'RUNNING'; else echo 'STOP';


ставим в начало скрипта, и соответственно, если running - то exit.
цитата
08/07/07 в 00:44
 lega_cobra
webboxxx писал:
попробуй вот так:
...
ставим в начало скрипта, и соответственно, если running - то exit.


php-файлы в процессах не отражаются.
цитата
08/07/07 в 00:50
 onn
в начало скрипта и будет тебе счастие
Код:

$fpl = fopen('/tmp/'.__FILE__.'.lock', 'w+');
if ( !flock($fpl,LOCK_EX|LOCK_NB) )
   die('already running');
цитата
08/07/07 в 03:30
 webboxxx
lega_cobra писал:
php-файлы в процессах не отражаются.


а почему у меня работает?


Эта страница в полной версии