Monit 和 backgroundrb 与自定义 gem 路径

Monit 和 backgroundrb 与自定义 gem 路径

我正在尝试使用 monit 来监视 backgroundrb 进程(偶尔会被终止),但似乎无法让启动或停止命令起作用(我只是得到“执行失败”) - 尽管它们在命令提示符下可以正常工作。

我没有做什么特别复杂的事情:

check process backgroundrb_11006
    with pidfile "/home/user/site/tmp/pids/backgroundrb_11006.pid"
    start = "/usr/bin/ruby /home/user/site/script/backgroundrb start"
    stop = "/usr/bin/ruby /home/user/site/script/backgroundrb stop"
    if cpu > 90% for 2 cycles then restart
    if totalmem > 512 MB for 2 cycles then restart
    if 4 restarts within 4 cycles then timeout
group backgroundrb

我为我的一些宝石(如数据包(/home/user/.gem/ruby/1.8/bin))设置了自定义位置,我怀疑问题的一部分在于 monit 使用了 spartan PATH(引用http://mmonit.com/monit/documentation/monit.html- PATH=/bin:/usr/bin:/sbin:/usr/sbin),导致这些 gem 无法访问。另外,我在 backgroundrb 调试日志中没有看到任何错误。

我很乐意听取任何人的意见,他们知道如何调整 backgroundrb(或我的启动/停止命令)以使其正常工作。

干杯,沃恩。

答案1

您可以使用正确的路径设置制作自定义的启动/停止脚本,然后将这些脚本与 monit 一起使用。

非常简单的启动脚本(backgroundrb_monit_start)

#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/add/your/other/paths
GEM_HOME=/home/mygemrepository
/usr/bin/ruby /home/user/site/script/backgroundrb start

并监控配置:

start = "/usr/bin/ruby /home/user/site/script/backgroundrb_monit_start"

相关内容