Настройка Monit для мониторинга Rocketjob - PullRequest
0 голосов
/ 04 сентября 2018

Это то, что у меня сейчас в файле monitrc:

check process rocketjob
        matching "rocketjob"
        start program = "bin/bash -c 'source $HOME/.rvm/bin/rvm cd /home/ghias/projects/my_project/ && RAILS_ENV=production bundle exec rocketjob --quiet >> log/rocketjob.log'"

и это дает мне эту ошибку в файле журнала мониторинга:

'rocketjob' failed to start (exit status 1) -- bin/bash: bin/bash: /.rvm/bin/rvm: No such file or directory

, где команда rvm дает мне rvm: /home/user/.rvm/bin/rvm

Что я делаю не так?

1 Ответ

0 голосов
/ 09 июня 2019

В вашей команде есть несколько вещей:

  1. Попробуйте использовать абсолютные пути для исходного двоичного файла. Так что /bin/bash с ведущими /
  2. Вы пытаетесь получить $HOME/.rvm/bin/rvm с аргументами cd и /home/ghias/projects/my_project/. Я думаю, что должно быть ; или && прямо перед cd

Возможно, вы захотите рассмотреть исполняемый файл с этими командами. Это проще реализовать, прочитать и отладить:

Содержимое /root/monit_do_rocketjob:

#!/bin/bash

source $HOME/.rvm/bin/rvm
cd /home/ghias/projects/my_project/

export RAILS_ENV=production
bundle exec rocketjob --quiet >> log/rocketjob.log

exit $?

Не забудьте сделать этот исполняемый файл.

Monit config:

check process rocketjob
        matching "rocketjob"
        start program = "/root/monit_do_rocketjob"
...