LoginSignup
3
3

More than 5 years have passed since last update.

capistrano3のdeployが「SSHKit::Command::Failed: rake stdout: Nothing」だった時にやったこと

Last updated at Posted at 2015-03-15

Rails4+capistrano3で自動デプロイする際に
とてもとてもつまずいていたので、備忘録的に残しときます。
結論から言うと長い処理の途中で「ssh connection closed」されちゃったら、
「set :pty, true」されているか確認しましょう。というお話。

対象

「コンソールで手動ではデプロイできるんだけど、自動化(サーバ起動時、定期実行等)したら、
assets:compileでずっと止まったままなんだけど、どうしたら良いの」な人

環境

Linux(Amazon Linux)
Rail 4.0.*
Capistrano 3.1

1. sshd_configにClientAliveIntervalを設定する

SSHコマンドでKeepAliveするにはどうすればいいのでしょうか
http://takuya-1st.hatenablog.jp/entry/20110429/1304102944

私のケースではClientAliveIntervalだけ設定でいけました



vi /etc/ssh/sshd_config

ClientAliveInterval 60

2. deploy.rbにset :pty, trueを追加

Capistrano3を最後にもう一度だけ懇切丁寧にまとめてみる
http://chroju89.hatenablog.jp/entry/2014/04/12/215628


vi deploy.rb 以下をを追記
set :pty, true

3. It's ready!

以上の設定を適用した所で、deployさせてみます。
すると「assets:compile」の途中で一度cpu使用率が1桁台になります。

すわ「コネクションが切れたか!」状態になるかと思いますが、
数秒~数十秒後に復活(?)しますので、killせずにお待ちください。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3