使用Monit监控Ruby脚本 – 包括RVM
我使用Monit监视使用
Ruby daemons gem的ruby脚本,它使用PID启动一个单独的进程 – 按照
Monitor ruby processes with Monit的说明进行操作
为了执行ruby脚本,我需要在Monit的开始和停止字符串中包含RVM,这样我就可以访问所有的gem. 但是当.monitrc执行时,我收到以下错误: $rvm_path (/usr/local/rvm) does not exist./home/william/.rvm/scripts/rvm: line 174: rvm_is_a_shell_function: command not found /home/william/.rvm/scripts/rvm: line 185: __rvm_teardown: command not found 'myserver_1' failed to start Aborting event 我添加了PATH = $PATH:/home/william/.rvm/bin&& . /home/william/.rvm/scripts/rvm启动和停止命令字符串以尝试包含RVM.但是它仍然无效 配置文件.monitrc: .... check process myserver_1 with pidfile /home/william/ruby/barclays/myapp.rb.pid start = "/bin/bash -c 'PATH=$PATH:/home/william/.rvm/bin && . /home/william/.rvm/scripts/rvm && ruby /home/william/ruby/barclays/daemonloader.rb start'" stop = "/bin/bash -c 'PATH=$PATH:/home/william/.rvm/bin && . /home/william/.rvm/scripts/rvm && ruby /home/william/ruby/barclays/daemonloader.rb stop'" .... 谢谢你的帮助. 编辑 我感觉问题与环境变量有关.引自this page
解决方法
用这个:
/path/to/rvm/bin/rvm in /path/to/project do ... 用rvm和project的正确目录替换路径,用命令停止/启动… – 尝试: /usr/bin/env "HOME=/home/william rvm_path=/home/william/.rvm /home/william/.rvm/bin/rvm in /home/william/ruby/project do ruby daemonloader.rb start" 此命令将加载RVM,cd到项目路径,为此ruby加载ruby并执行给定命令. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |