Capistrano部署超时

psy*_*ca0 13 ruby capistrano ruby-on-rails

好吧,所以,我在网上看了一下,看起来并不是很多其他人都有这个问题,但也许其他问题与我们正在做的事情有关.

我已经马上将它提炼到我认为有用的测试用例:

配置/ deploy.rb:

## Excerpt
task :big_delay, :roles => :web do
  run "sleep 480"
  run "echo Meow Meow Meow"
end 
Run Code Online (Sandbox Code Playgroud)

和stupid_script.sh:

#!/bin/sh
ssh foo 'sleep 480; echo Meow Meow Meow'
Run Code Online (Sandbox Code Playgroud)

其中foo是我们部署到的同一服务器的名称.

当我运行这两个时,它应该连接到另一个盒子,8分钟什么也不做,然后吐出一些无用的文本并完成.

stupid_script工作,cap任务失败.我看到远程命令用ps xf完成,但是cap似乎不再注意了.如果睡眠是20而不是240,则cap任务正常.

显然这个任务是无用的,但我们确实在部署上运行了昂贵的东西,触发了这个,我已经做到这一点,以排除对ssh的任何责任.

另一个数据点,如果我们进入框并将代码放在那里然后从那里运行cap deploy,那么它工作正常.

所以......在ssh和capistrano之间似乎有一些奇怪的相互作用.思考?

Kri*_*aun 11

在choover建议的服务器上的/ etc/ssh/sshd_config中设置ClientAliveInterval和ClientAliveCountMax.在我的部署中,我遇到了与"assets:precompile"完全相同的问题,直到我改变了这一点.