Проверка работы и автозапуск php скрипта

Montoya
На сайте с 30.09.2006
Offline
139
1781

Как можно реализовать проверку работы php скрипта? и в случаи если работа остановлена запустить его?

К примеру, есть скрипт директа, в начале скрипта прописано set_time_limit(0);, что подразумевает бесконечное выполнение скрипта, но если сервер будет перезагружен, то скрипт не продолжит работу пока не запустишь его вручную. Как можно организовать такую проверку?

cron вроде не подходит, т.к. он не проверяет выполняется ли скрипт, а просто запускает его каждый раз

Дмитрий
На сайте с 23.08.2006
Offline
222
#1

Как вариант создать создать еще один дочерний процесс, в котором создать сокет на каком нить порту, возвращающий статус работы скрипта.

Другой скрипт, выполняясь по крону, пытается опросить сокет, если ему это не удается - запускает скрипт заново. Канеш немного корява, но подумать в этом направлении стоит...

Разрабатываю и автоматизирую на php http://jonnyb.ru/
Montoya
На сайте с 30.09.2006
Offline
139
#2

Спасибо, но как то сложно это для меня пока, хотя если другого варианта не найдется, буду разбираться с этим

Shtogrin
На сайте с 02.11.2006
Offline
95
#3

Смотрите man crontab

@reboot Run once, at startup.
www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
F
На сайте с 10.02.2008
Offline
3
#4

Если у Вас на сервере разрешено выполнять команду system, то есть такой приблизительно вариант:

system("ps aux | grep script.php");

Разбираем резултат, если есть скрипт в процессах, то не выполняем, если нету - то запускаем. Проверку на существование процесса можно поставить в Cron.

Регистрация доменных имен (http://www.hosterok.net/domains/) http://www.hosterok.net (http://www.hosterok.net) - Надежный и недорогой хостинг!
zmitrok
На сайте с 18.01.2008
Offline
50
#5

Когда-то сталкивался с такой ситуацией, решил ее довольно примитивно.

Скрипт, который нужно контролировать, раз в несколько итераций делает запись в какой-то текстовый контрольный файл, например, каждый раз перезаписывает текущее время. Другой скрипт по крону проверяет этот файл и анализирует как давно была произведена последняя запись, и в случае определенной просрочки запускает первый скрипт.

Montoya
На сайте с 30.09.2006
Offline
139
#6
Скрипт, который нужно контролировать, раз в несколько итераций делает запись в какой-то текстовый контрольный файл, например, каждый раз перезаписывает текущее время. Другой скрипт по крону проверяет этот файл и анализирует как давно была произведена последняя запись, и в случае определенной просрочки запускает первый скрипт.

вряд ли подойдет такой вариант, т.к. нет определенного промежутка времени, он может быть 10 секунд, а может быть 500

Montoya добавил 03.04.2008 в 13:29

Скрипт, который нужно контролировать, раз в несколько итераций делает запись в какой-то текстовый контрольный файл, например, каждый раз перезаписывает текущее время. Другой скрипт по крону проверяет этот файл и анализирует как давно была произведена последняя запись, и в случае определенной просрочки запускает первый скрипт.

вряд ли подойдет такой вариант, т.к. нет определенного промежутка времени, он может быть 10 секунд, а может быть 500

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий