网上有关于如何使用Monit监控delayed_job的例子吗?
我能找到的一切都使用了上帝,但我拒绝使用上帝,因为在Ruby中长期运行的过程通常很糟糕.(上帝邮件列表中最新的帖子?上帝内存使用量稳步增长.)
更新: delayed_job现在附带一个基于此问题的示例监听配置.
我正在制作一个神剧脚本来监视我的独角兽.我从GitHub的示例脚本开始,并一直在修改它以匹配我的服务器配置.一旦神运行,命令如god stop unicorn
和god restart unicorn
工作就好了.
然而,god start unicorn
结果WARN: unicorn start command exited with non-zero code = 1
.奇怪的是,如果我直接从配置文件中复制启动脚本,它就会像一个全新的野马一样启动.
这是我的开始命令:
/usr/local/bin/unicorn_rails -c /home/my-linux-user/my-rails-app/config/unicorn.rb -E production -D
Run Code Online (Sandbox Code Playgroud)
我在配置文件中声明所有路径都是绝对的.可能阻止此脚本工作的任何想法?
我有一个上帝脚本,应该留意两个跟踪者进程.问题是24小时后启动的过程太多了.
这是神剧本.
rails_root = File.expand_path("../..", __FILE__)
2.times do |n|
God.watch do |w|
w.group = "app-scripts"
w.name = "run-#{n}"
w.interval = 30.seconds
w.dir = File.dirname(__FILE__)
w.env = {
"BUNDLE_GEMFILE" => "#{rails_root}/Gemfile",
"RAILS_ENV" => "production",
"BEANSTALK_URL" => "beanstalk://127.0.0.1:54132"
}
w.start = "bbundle exec stalk #{File.join(rails_root, "config/jobs.rb")}"
w.start_grace = 5.seconds
w.stop_grace = 5.seconds
w.start_if do |start|
start.condition(:process_running) { |c| c.running = false }
end
w.restart_if do |restart|
restart.condition(:memory_usage) do |c|
c.above = 200.megabytes
c.times = [3, 5]
end
restart.condition(:cpu_usage) do |c|
c.above …
Run Code Online (Sandbox Code Playgroud) 我正在努力了解如何通过上帝来监视resvis- trai的resvis-ci,以便通过上帝停止resque手表不会留下陈旧的工人进程.
在下面我说的是工作进程,而不是分叉的作业子进程(即队列一直是空的).
当我像这样手动启动resque worker时:
$ QUEUE=builds rake resque:work
Run Code Online (Sandbox Code Playgroud)
我会得到一个过程:
$ ps x | grep resque
7041 s001 S+ 0:05.04 resque-1.13.0: Waiting for builds
Run Code Online (Sandbox Code Playgroud)
一旦我停止工作任务,这个过程就会消失.
但是,当我与上帝开始相同的事情(确切的配置在这里,基本上与resque/god示例相同)就像这样......
$ RAILS_ENV=development god -c config/resque.god -D
I [2011-03-27 22:49:15] INFO: Loading config/resque.god
I [2011-03-27 22:49:15] INFO: Syslog enabled.
I [2011-03-27 22:49:15] INFO: Using pid file directory: /Volumes/Users/sven/.god/pids
I [2011-03-27 22:49:15] INFO: Started on drbunix:///tmp/god.17165.sock
I [2011-03-27 22:49:15] INFO: resque-0 move 'unmonitored' to 'init'
I [2011-03-27 22:49:15] INFO: …
Run Code Online (Sandbox Code Playgroud) 我使用乘客服务我的软件.它产生了许多ruby进程.
有时这些红宝石中的一个变得臃肿,我希望它会死.
我希望将神用于那个意图.我的想法是监控所有这些红宝石,如果它消耗超过500MB的内存3个周期,上帝应该尝试优雅地杀死它.如果它活着超过5分钟,那么上帝不应该优雅地杀死它.
在我看来,上帝总是试图再次运行服务,因此它迫使我们提供启动命令.是否有可能只使用上帝来杀死不良的行为过程,并让乘客产生在必要时让他们恢复生活?
我有一个rails网站和一个运行在linode vps上的小型Minecraft服务器.我正在基于init.d文件从ram服务器上运行minecraft作为自定义服务.由于我使用上帝监控我的rails网站,我以为我也会将它用于我的世界,但它似乎无法以任何方式识别该服务.条件没有检测到它的存在.:process_running总是返回false,无论它是否正在运行,并且当它不运行时都无法启动它.添加到混乱中:memory_usage和:cpu_usage始终为零.
我的/etc/init.d/minecraft文件在这里:http: //pastie.org/2760483
它工作得非常好,并且"服务我的世界开始"并没有给我几乎所有我需要的东西.我希望能够在cpu使用率很高的情况下通过上帝自动让它入睡,以优先考虑网站.然而,上帝的条件都没有弄清楚这个过程发生了什么.
我的/opt/god/minecraft.god文件在这里:http://pastie.org/2760498
显然,低cpu是试图从上帝中崛起.如果你愿意的话,要求打击.
试图从配置中运行上帝:sudo god -c minecraft.god -D
收益率:
I [2011-10-26 01:55:55] INFO: Loading minecraft.god
I [2011-10-26 01:55:55] INFO: Syslog enabled.
I [2011-10-26 01:55:55] INFO: Using pid file directory: /var/run/god
I [2011-10-26 01:55:55] INFO: Socket already in use
I [2011-10-26 01:55:55] INFO: Socket is stale, reopening
I [2011-10-26 01:55:55] INFO: Started on drbunix:///tmp/god.17165.sock
I [2011-10-26 01:55:55] INFO: minecraft move 'unmonitored' to 'up'
I [2011-10-26 01:55:55] INFO: minecraft moved 'unmonitored' to 'up'
I …
Run Code Online (Sandbox Code Playgroud) 我有几个应用程序在ruby 1.9.2上运行rails 3并使用nginx + passenger部署在Ubuntu 10.04 LTS机器上.现在,我需要添加一个在ruby 1.8.7(REE)和Rails 2上运行的新应用程序.我完成了使用RVM,Passenger Standalone和反向代理.
问题是,每次我必须重新启动服务器(例如安装安全更新)时,我必须手动启动Passenger Standalone.
有没有办法自动启动它?我被告知要使用Monit或God,但我无法编写适用于Passenger Standalone的正确配方.我也有上帝和RVM的一些问题,所以如果你有一个不使用上帝的解决方案,或者如果你知道如何正确配置God/Rvm,那就更好了.
我有这个文件
rails_env = ENV['RAILS_ENV'] || 'development'
rails_root = ENV['RAILS_ROOT'] || "/home/luiz/rails_dev/api"
God.watch do |w|
w.name = "unicorn"
w.interval = 30.seconds # default
# unicorn needs to be run from the rails root
w.start = "cd #{rails_root} && unicorn_rails -c config/unicorn.rb -E #{rails_env}"
# QUIT gracefully shuts down workers
w.stop = "kill -QUIT `cat #{rails_root}/tmp/pids/unicorn.pid`"
# USR2 causes the master to re-create itself and spawn a new worker pool
w.restart = "kill -USR2 `cat #{rails_root}/tmp/pids/unicorn.pid`"
w.start_grace = 10.seconds
w.restart_grace = 10.seconds …
Run Code Online (Sandbox Code Playgroud) 我在rails 3应用程序中使用resque:scheduler gem.
如何rake resque:scheduler
以daemon
模式启动.
如果你知道那么请告诉我,
如何在GOD脚本中配置此任务?
god ×10
ruby ×8
monit ×3
resque ×2
unicorn ×2
beanstalkd ×1
delayed-job ×1
init.d ×1
linux ×1
minecraft ×1
monitoring ×1
nginx ×1
passenger ×1
service ×1