【发布时间】:2016-09-15 08:42:00
【问题描述】:
即使我在技术上知道该怎么做,我也会问这个问题。毕竟我已经在其他 3 台服务器上设置了这个环境。然而,在这个全新的 RHEL6 安装上,它却是难以置信的、难以置信的顽固。
这是我的/etc/monit.d/sidekiq_uploader.monitrc 文件中的一个条目:
# sidekiq worker 0
check process sidekiq_uploader_0
with pidfile /var/run/sidekiq/uploader/sidekiq_0.pid
start program = "/home/deploy/scripts/sidekiq uploader start production 0" with timeout 180 seconds
stop program = "/home/deploy/scripts/sidekiq uploader stop production 0" with timeout 180 seconds
group uploader_sidekiq
很简单,对吗?不工作。创建pid文件,在Rails项目log目录下创建日志文件,然后什么都没有。
也许最令人沮丧的是,我可以将上面的启动和停止命令剪切并粘贴到命令行中,并且它们完美地运行。
在/var/monit/log,一遍又一遍:
[EDT May 18 12:37:29] info : Awakened by User defined signal 1
[EDT May 18 12:37:29] info : 'sidekiq_uploader_0' start: /home/deploy/scripts/sidekiq
[EDT May 18 12:37:29] info : 'sidekiq_uploader_0' start action done
[EDT May 18 12:37:59] error : 'sidekiq_uploader_0' process is not running
[EDT May 18 12:37:59] info : 'sidekiq_uploader_0' trying to restart
这是 Rails 日志中的唯一条目:
# Logfile created on 2016-05-18 12:37:21 -0400 by logger.rb/47272
至少没有帮助。当我只是在命令行运行启动命令时:
在 Rails /log 目录中创建日志,并创建 Rails production.log 文件。然后 sidekiq 日志文件包含:
# Logfile created on 2016-05-18 12:37:21 -0400 by logger.rb/47272
2016-05-18T17:45:13.303Z 24843 TID-oxfx4u7ko INFO: Booting Sidekiq 4.0.2 with redis options {:url=>"redis://redis:6379", :namespace=>"uploader"}
2016-05-18T17:45:14.061Z 24843 TID-oxfx4u7ko INFO: Running in ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
2016-05-18T17:45:14.061Z 24843 TID-oxfx4u7ko INFO: Sidekiq Pro 3.0.1 / Sidekiq Enterprise 1.1.0, commercially licensed.
2016-05-18T17:45:14.064Z 24843 TID-oxfx4u7ko INFO: Starting processing, hit Ctrl-C to stop
2016-05-18T17:45:14.126Z 24843 TID-oxfxm4ix8 INFO: Gained leadership of the cluster
【问题讨论】:
-
你为什么使用 monit 而不是 Upstart?
-
只是因为这是我所知道的,而且我过去已经成功了。
-
我个人不是 monit 的粉丝。您可以使用 Sidekiq Enterprise 中的多进程支持来监控内存并重新启动臃肿的子进程:github.com/mperham/sidekiq/wiki/… 另请参阅我的 Inspeqtor 项目。
-
谢谢 Mike,听起来我需要升级我的企业版。 big time 在我们的安装中,重新启动臃肿的孩子会派上用场。
标签: ruby-on-rails sidekiq monit