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-файлы в процессах не отражаются.
а почему у меня работает?
Новая тема
Ответить
Эта страница в полной версии