当前位置:  开发笔记 > 后端 > 正文

Capistrano没有正确重启Mongrel集群

如何解决《Capistrano没有正确重启Mongrel集群》经验,为你挑选了0个好方法。

我有一个在nginx下运行的三个mongrel集群,我使用Capistrano 2.4.3部署应用程序.当我有一个正在运行的系统时"封盖部署",行为是:

    该应用程序已部署.代码已成功更新.

    在cap deploy输出中,有这样的:

    执行"sudo -p"sudo密码:'mongrel_rails cluster :: restart -C /var/www/rails/myapp/current/config/mongrel_cluster.yml"

    服务器:["myip"]

    [myip]执行命令

    **[out :: myip]停止端口9096

    **[out :: myip]停止端口9097

    **[out :: myip]停止端口9098

    **[out :: myip]已经启动了端口9096

    **[out :: myip]已经启动了端口9097

    **[out :: myip]已经启动了端口9098

    我立即检查服务器并发现Mongrel仍在运行,并且前三个实例的PID文件仍然存在.

    不久之后(不到一分钟),我发现Mongrel不再运行,PID文件消失,无法重启.

    如果我手动启动服务器上的mongrel,应用程序启动就好了.

在尝试重新启动集群之前,似乎'mongrel_rails cluster :: restart'没有正确等待完全停止.如何诊断和解决此问题?

编辑:这是答案:

mongrel_cluster,在"重启"任务中,只需执行以下操作:

 def run
   stop
   start
 end

在调用"start"之前,它不会等待或检查进程是否已退出.这是一个已知错误,提交了一个未完成的补丁.我将补丁应用于Mongrel Cluster,问题就消失了.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有