Capistrano部署超时

时间:2012-07-19 22:24:40

标签: ruby-on-rails ruby capistrano

好吧,所以,我在网上看了一下,看起来并不是很多其他人都有这个问题,但是我们正在做的事情可能还有别的问题。

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

配置/ deploy.rb:

## Excerpt
task :big_delay, :roles => :web do
  run "sleep 480"
  run "echo Meow Meow Meow"
end 

和stupid_script.sh:

#!/bin/sh
ssh foo 'sleep 480; echo Meow Meow Meow'

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

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

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

显然这个任务是超级无用的,但是我们确实在部署时运行了昂贵的东西来触发这个,我已经做了这个以排除任何对ssh的责任。

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

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

1 个答案:

答案 0 :(得分:11)

在choover建议的服务器上的/ etc / ssh / sshd_config中设置ClientAliveInterval和ClientAliveCountMax。在我的部署中,我遇到了与“资产:预编译”完全相同的问题,直到我进行了更改。