配置Monit监视Rocketjob

时间:2018-09-04 11:28:54

标签: ruby-on-rails bash rvm monit

这是我当前在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

whereis rvm命令给了我rvm: /home/user/.rvm/bin/rvm

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您的命令中有一些内容:

  1. 尝试对初始二进制文件使用绝对路径。因此,/bin/bash与领先的/
  2. 您尝试使用参数$HOME/.rvm/bin/rvmcd来获取/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 $?

别忘了使这个可执行文件。

监视配置:

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