标签: god

如何用monit监视delayed_job

网上有关于如何使用Monit监控delayed_job的例子吗?

我能找到的一切都使用了上帝,但我拒绝使用上帝,因为在Ruby中长期运行的过程通常很糟糕.(上帝邮件列表中最新的帖子?上帝内存使用量稳步增长.)

更新: delayed_job现在附带一个基于此问题的示例监听配置.

ruby ruby-on-rails god monit delayed-job

74
推荐指数
4
解决办法
3万
查看次数

59
推荐指数
5
解决办法
3万
查看次数

使用上帝监视Unicorn - 以非零代码= 1开始退出

我正在制作一个神剧脚本来监视我的独角兽.我从GitHub的示例脚本开始,并一直在修改它以匹配我的服务器配置.一旦神运行,命令如god stop unicorngod 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)

我在配置文件中声明所有路径都是绝对的.可能阻止此脚本工作的任何想法?

ruby linux ruby-on-rails god unicorn

42
推荐指数
1
解决办法
5154
查看次数

上帝开始了太多的过程

我有一个上帝脚本,应该留意两个跟踪者进程.问题是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)

ruby god beanstalkd

24
推荐指数
2
解决办法
2468
查看次数

如何阻止上帝离开陈旧的Resque工人流程?

我正在努力了解如何通过上帝来监视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 god resque

13
推荐指数
1
解决办法
4428
查看次数

用上帝来杀人

我使用乘客服务我的软件.它产生了许多ruby进程.

有时这些红宝石中的一个变得臃肿,我希望它会死.

我希望将神用于那个意图.我的想法是监控所有这些红宝石,如果它消耗超过500MB的内存3个周期,上帝应该尝试优雅地杀死它.如果它活着超过5分钟,那么上帝不应该优雅地杀死它.

在我看来,上帝总是试图再次运行服务,因此它迫使我们提供启动命令.是否有可能只使用上帝来杀死不良的行为过程,并让乘客产生在必要时让他们恢复生活?

ruby ruby-on-rails god

11
推荐指数
1
解决办法
1050
查看次数

上帝不会注册正在运行的自定义服务

我有一个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 service init.d god minecraft

10
推荐指数
1
解决办法
671
查看次数

即使重启后我怎样才能保持乘客独立?

我有几个应用程序在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,那就更好了.

ruby-on-rails passenger nginx god monit

9
推荐指数
1
解决办法
5243
查看次数

上帝不会停止独角兽

我有这个文件

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)

ruby god unicorn ruby-on-rails-3

8
推荐指数
1
解决办法
1908
查看次数

如何在守护进程模式下运行rake resque:scheduler

我在rails 3应用程序中使用resque:scheduler gem.

如何rake resque:schedulerdaemon模式启动.

如果你知道那么请告诉我,

如何在GOD脚本中配置此任务?

god resque ruby-on-rails-3

7
推荐指数
2
解决办法
1950
查看次数