Monit и Java-процесс

Я пытаюсь использовать monit для мониторинга процесса Java. Файл monit для процесса выглядит следующим образом:

check process xyz pidfile /tmp/xyz.pid
start program = "/bin/bash -c 'source /home/.bashrc; source /home/xyzprog/setup.sh; /home/xyzprog/xyz start'"
stop program = "/bin/bash -c '/home/xyzprog/xyz stop'"

Этот процесс отлично работает, если я начну с

sudo monit start xyz

Но полностью терпит неудачу, если я запускаю monit в режиме демона.

Может кто знает в чем проблема?


person jortiz81    schedule 23.07.2012    source источник
comment
Что вы имеете в виду под fails? Какие ошибки вы получаете?   -  person Keppil    schedule 23.07.2012
comment
'sfs' start: /bin/bash [UTC 23 июля 06:57:35] debug : 'xyz' Идентификатор процесса тестирования ошибки [17427] -- такого процесса нет [UTC 23 июля 06:57:35] debug : 'xyz ' Идентификатор процесса тестирования ошибки [17427] -- Нет такого процесса   -  person jortiz81    schedule 23.07.2012
comment
В основном процесс не запускается. Он запускается нормально, когда monit не установлен в режиме демона, но он не работает из демона. Понятия не имею почему. Теперь это процесс Java, поэтому он зависит от некоторых переменных среды, которые я обрабатываю, используя несколько сценариев установки в вызове bash. Теоретически это должно работать и работает, но не в режиме демона.   -  person jortiz81    schedule 23.07.2012
comment
Я получил частичное решение, когда заменил ${PWD} в одном из сценариев установки полным путем. Однако процесс не перезапустится, если я его отключу и запущу вызов monit. Это в значительной степени побеждает цель для моих нужд.   -  person jortiz81    schedule 23.07.2012


Ответы (1)


Итак, я понял, что некоторые сценарии основаны на запуске в домашнем каталоге процесса, поэтому я обновляю стартовую программу следующим образом:

check process xyz pidfile /tmp/xyz.pid
start program = "cd /home/xyzprog; /bin/bash -c 'source /home/.bashrc; source /home/xyzprog/setup.sh; /home/xyzprog/xyz start'"
stop program = "/bin/bash -c '/home/xyzprog/xyz stop'"
if failed host 192.168.1.103 port 8080 protocol http with timeout 20 seconds for 1 cycle then restart

Я просто добавил «cd /home/xyzprog» в стартовую программу, и все заработало! Я убил процесс, и он сразу вернулся.

person jortiz81    schedule 23.07.2012