カピストラーノ タスク
namespace :service do
desc "start daemontools (svscan/supervise/svscanboot)"
task :start, :roles => :app do
sudo "svscanboot&"
end
end
これは機能しません: svscanboot プロセスは単に実行されません。これは私が見つけるのを助けましたsleep
: https://github.com/defunkt/resque/issues/284nohup
他の情報源が私に、redirection
、 を
指摘したpty => true
ので、これらすべてを試しました。
run "nohup svscanboot >/tmp/svscanboot.log 2>&1 &" # NO
run "(svscanboot&) && sleep 1" # NO
run "(nohup svscanboot&) && sleep 1" # YES!
さて、なぜスリープステートメントが必要なのか、nohup がどのような違いを生むのか、誰か説明してもらえますか? 記録として、ユーザーシェルから実行した場合、上記のすべてが同様にうまく実行されますが、問題は capistrano のコンテキストでのみ発生します。
ありがとう