概要

capistrano3からforemanを使ってlitaを起動させようとしてハマったのでメモ

問題

capistrano3でexecuteでバックグラウンドジョブを起動させようとしてもすぐに終了されてしまう。
executeの最後でSIGTERMされるためらしい?

task :start do
  on roles(:web) do
    execute "cd #{current_path}; nohup bundle exec foreman start &"
  end
end

解決法

以下のようにリダイレクトすると上手くいくっぽい

task :start do
  on roles(:web) do
    execute "cd #{current_path}; (nohup bundle exec foreman start &) >& /dev/null"
  end
end

正直よくわからない・・・