programmer
С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760
|
Добавлено: 06/07/07 в 09:57 |
как сделать?
чтобы в текущий момент работала одна копия и все
|
|
|
|
С нами с 25.07.06
Сообщения: 207
Рейтинг: 229
|
Добавлено: 06/07/07 в 10:14 |
создай lock-файл, при старте скрипта проверяй его наличие, если есть - выход; соответственно, по завершении работы скриптаудалять лок.
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760
|
Добавлено: 06/07/07 в 10:26 |
не вариант
скрипт порой прерывается
|
|
|
|
С нами с 25.07.06
Сообщения: 207
Рейтинг: 229
|
Добавлено: 06/07/07 в 10:34 |
значит, копай в сторону семафоров.
(hint:sem_get)
только не уверен, что они будут под всеми платформами работать
|
|
|
|
С нами с 25.01.07
Сообщения: 257
Рейтинг: 262
|
Добавлено: 06/07/07 в 10:45 |
Почитать на тему функции flock в пхп
создать локфайл доступный на запись апачу. и вперед.
4 строчки кода
|
|
|
|
БешаныйСуслег
С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338
|
Добавлено: 06/07/07 в 11:24 |
Sterx писал: | не вариант
скрипт порой прерывается |
тогда нужно делать так, чтобы перед тем, как сложить чешки, скрипт подчищал лок файлы.
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760
|
Добавлено: 07/07/07 в 12:55 |
как получить PID нашел - posix_getpid
а как проверить на активность?
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760
|
Добавлено: 07/07/07 в 13:48 |
posix_kill
возвращает false при невозможности послать сигнал процессу
diff:
спасибо, действительно просто
|
|
|
|
С нами с 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.
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 08/07/07 в 00:44 |
webboxxx писал: | попробуй вот так:
...
ставим в начало скрипта, и соответственно, если running - то exit. |
php-файлы в процессах не отражаются.
|
|
|
|
С нами с 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');
|
|
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 08/07/07 в 03:30 |
lega_cobra писал: | php-файлы в процессах не отражаются. |
а почему у меня работает?
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |