Найти, если процесс (сервер) работает в Unix - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть сервер (Java), работающий в UNIX.

Я пытаюсь разработать какое-нибудь приложение, которое будет "распознавать", если состояние сервера было изменено, и уведомлять меня по почте.

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

Я думал о коде Java, который будет выполняться в бесконечном цикле и проверит,процесс запущен, но он мне кажется плохим.

Любая идея будет принята.Спасибо.

Ответы [ 3 ]

1 голос
/ 28 февраля 2012

вы можете установить событие таймера в java-программе (используя cron или quartz )

в программе, которую вы можете проверить, чтобы увидеть, запущен ли конкретный процесс .. вы можетеиспользуйте ps -e | grep java

или вы можете заставить java-программу отправлять сообщения jmx, которые могут использоваться для отслеживания состояния приложения (опять же, это зависит от того, можете ли вы изменить приложение на сервере).

0 голосов
/ 28 февраля 2012

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

0 голосов
/ 28 февраля 2012

Определение состояния Java-сервера должно быть подготовлено до запуска.Я думаю, что вы должны взглянуть на проект Metrics, например: http://metrics.codahale.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...