Реклама на сайте Advertise with us

Запрет одновременного запуска скрипта php

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

programmer

С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 06/07/07 в 09:57       Ответить с цитатойцитата 

как сделать?
чтобы в текущий момент работала одна копия и все

крипта на ByBit

0
 



С нами с 25.07.06
Сообщения: 207
Рейтинг: 229

Ссылка на сообщениеДобавлено: 06/07/07 в 10:14       Ответить с цитатойцитата 

создай lock-файл, при старте скрипта проверяй его наличие, если есть - выход; соответственно, по завершении работы скриптаудалять лок.

8
 

programmer

С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 06/07/07 в 10:26       Ответить с цитатойцитата 

не вариант
скрипт порой прерывается

крипта на ByBit

0
 



С нами с 25.07.06
Сообщения: 207
Рейтинг: 229

Ссылка на сообщениеДобавлено: 06/07/07 в 10:34       Ответить с цитатойцитата 

значит, копай в сторону семафоров.
(hint:sem_get)
только не уверен, что они будут под всеми платформами работать

8
 



С нами с 25.01.07
Сообщения: 257
Рейтинг: 262

Ссылка на сообщениеДобавлено: 06/07/07 в 10:45       Ответить с цитатойцитата 

Почитать на тему функции flock в пхп

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

4 строчки кода

8
 

БешаныйСуслег

С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338

Ссылка на сообщениеДобавлено: 06/07/07 в 11:24       Ответить с цитатойцитата 

Sterx писал:
не вариант
скрипт порой прерывается

тогда нужно делать так, чтобы перед тем, как сложить чешки, скрипт подчищал лок файлы.

8
 

programmer

С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 07/07/07 в 12:55       Ответить с цитатойцитата 

как получить PID нашел - posix_getpid
а как проверить на активность?

крипта на ByBit

0
 

programmer

С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 07/07/07 в 13:48       Ответить с цитатойцитата 

posix_kill
возвращает false при невозможности послать сигнал процессу
diff:
спасибо, действительно просто

крипта на ByBit

0
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 07/07/07 в 23:07       Ответить с цитатойцитата 

попробуй вот так:

Код:
$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.

8
 



С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144

Ссылка на сообщениеДобавлено: 08/07/07 в 00:44       Ответить с цитатойцитата 

webboxxx писал:
попробуй вот так:
...
ставим в начало скрипта, и соответственно, если running - то exit.


php-файлы в процессах не отражаются.

0
 



С нами с 04.11.05
Сообщения: 178
Рейтинг: 122

Ссылка на сообщениеДобавлено: 08/07/07 в 00:50       Ответить с цитатойцитата 

в начало скрипта и будет тебе счастие
Код:

$fpl = fopen('/tmp/'.__FILE__.'.lock', 'w+');
if ( !flock($fpl,LOCK_EX|LOCK_NB) )
   die('already running');

0
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 08/07/07 в 03:30       Ответить с цитатойцитата 

lega_cobra писал:
php-файлы в процессах не отражаются.


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

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »