У меня есть сценарий, который слушает jabber-сервер и отвечает соответствующим образом. Хотя он не должен останавливаться, прошлой ночью это произошло. Теперь я хочу запускать задание cron каждую минуту, чтобы проверить, запущен ли скрипт, и запустить его, если нет.
Вопрос в том, как проверить, работает ли какой-либо конкретный скрипт?
Некоторые решения были опубликованы здесь , но все они предназначены для Linux, в то время как я ищу решение для Windows. Любые идеи, пожалуйста? Благодарю.
Быстрое и грязное обходное решение может быть связано с тем, что скрипт обновляет строку в базе данных с столбцом даты, установленным на CURRENT_TIMESTAMP. Попросите cron second script проверить, является ли временная метка этой строки последней.
Вот что я обычно делаю:
Однако в этом есть проблема: что, если скрипт умирает и он не удаляет файл состояния?
Вы можете добавить немного сохранения, например:
У меня была та же проблема, и я решил с помощью этого кода:
file_put_contents("status.txt","ping");
Я положил его внутри цикла моего скрипта
поэтому, я проверяю последнюю измененную дату файла, чтобы увидеть, активен ли скрипт
чтобы не перегружать HD, вы можете сделать что-то вроде этого:
$i++ if( $i%100 == 0) file_put_contents("status.txt","ping");
это напишет файл, когда $ i == 100 или 200 или 300 и т. д. …
это обходной путь