PDA

Просмотр полной версии : как узнать запущен ли php скрипт в данный момент


Sharky
24.11.2008, 11:48
как узнать запущен ли php скрипт в данный момент на сервере

DIAgen
24.11.2008, 12:02
как узнать запущен ли php скрипт в данный момент на сервере
На прямую не как не сделать, можно сделать так, при загрузки скрипта создаеться файл, при завершении удаляеться, и при загрузке другой версии скрипта проверятся сушествование файла. ДУмаю понятна логика.

Sharky
24.11.2008, 12:06
возможно неплохая идея :) заплюсовал :)

Ru}{eeZ
24.11.2008, 14:31
сделай отсылку на мыло и какой-нить qip или magent поставь специально на этот ящик, при каждом запуске будешь оповещён

krypt3r
24.11.2008, 15:08
возможно неплохая идея
Да не "возможно", а точно. Во многих никсах используется та же идея, чтобы предотвратить повторный запуск демона, к примеру (pid-файлы в /var/run, которые также несут дополнительную информацию, как минимум о PID процесса).

nerezus
24.11.2008, 15:41
ненадежный способ - приложение может недоработать до конца.
Проще сокет, к примеру, биндить и т.д.

krypt3r
24.11.2008, 15:49
программист должен предусмотреть, какие исключительные ситуации, приводящие к краху скрипта, могут возникнуть и грамотно их обработать. Так что ненадежность способа - вещь спорная.

ЗЫ. IMHO

biophreak
24.11.2008, 17:12
некоторые сигналы ты попросту обработать на ур-не приложения не сможешь )

mr.The
24.11.2008, 19:46
программист должен предусмотреть, какие исключительные ситуации, приводящие к краху скрипта, могут возникнуть и грамотно их обработать. Так что ненадежность способа - вещь спорная.
я б заипался это делать.. особенно зная о ненадёжности хостинга.

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

Sharky
24.11.2008, 20:00
хороших идей сказали в избытке...думаю тему можно клозед

nerezus
24.11.2008, 23:00
программист должен предусмотреть, какие исключительные ситуации, приводящие к краху скрипта, могут возникнуть и грамотно их обработать. Так что ненадежность способа - вещь спорная. И как? Например исключительная ситуация: скрипт убит другим процессом. Что делаешь в этом случае?

biophreak
25.11.2008, 00:37
Угу...nerezus прав....все исключительные ситуации ты не предусмотришь...есть много НО при которых ды даже ничего записать\удалить не сможешь )))
Как один из вариантов(его уже тут писали) - создавать заблокированный сокет,например, и потом проверять его(при убиении он должен освободиться)...

Sharky
25.11.2008, 19:41
использовал способ нера :) всё гуд

Buffalon
26.11.2008, 15:04
ЗАписывай время в базу , потом сравнивай время ... .

Sharky
26.11.2008, 17:31
спасибо, но вопрос УЖЕ РЕШЁН