2016-02-14 13 views
0

У меня есть сценарий python (или ruby, на самом деле не имеет значения) на сервере, который должен быть надежным и работать все время. И если что-то случится, и он сработает или замерзнет Мне нужно немедленно об этом узнать. Раньше я думал о другом «скрипте», таком как задание cron, которое проверяет каждую минуту с помощью Linux - независимо от того, находится ли он в списке активных процессов. Однако теперь я думаю, что даже если это список активных процессов, он все равно может быть заморожен (он еще не разбился, но он вот-вот).Что такое надежный способ проверить, не работает ли мой скрипт и не заморожен?

Не так ли? Если это так, я думаю, что мне нужно сохранить данные «сердца» в файл каждую минуту, потому что это более надежный способ узнать, действительно ли это И независимо от того, заморожено ли это, потому что, если оно заморожено, не может записываться в файл, но все еще может быть в памяти.

Ваши предложения, я должен пойти с этим? Или просто проверить, достаточно ли его процесс в памяти (в списке активных процессов)?

+0

Вы также можете заставить его реагировать на сигнал (например, USR1). – choroba

+0

@choroba, не могли бы вы рассказать об этом? –

+0

вы можете просто «прикоснуться» к файлу ... –

ответ

1

Если есть плохие последствия, когда сценарий не запущен (если бы не было, вам, вероятно, было бы неважно, не так ли?), Было бы наиболее надежно проверять отдельные симптомы этих последствий.

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

Если плохие последствия могут наблюдаться удаленно или даже за пределами площадки, иметь удаленный мониторинг или, если возможно, вне сайта с компьютера, на котором выполняется ваш скрипт. Зачем? Если последствия произошли из-за того, что ваш скрипт прекратил работу, потому что машина, работающая с ним, умерла ... вы не получили бы уведомление, если бы задание того же самого компьютера уведомило вас. Если это другая машина, вы узнаете о ситуации. Если дата-центр не сгорит. Тогда ваш мониторинг должен находиться в другом центре обработки данных, чтобы вы могли получать уведомления.

Платные и бесплатные услуги мониторинга услуг для общедоступных серверов, например. Uptime Robot для веб-серверов, если вы не хотите разрабатывать и проводить мониторинг самостоятельно.