lançando processo de fundo na tarefa capistrano

tarefa capistrano

namespace :service do
  desc "start daemontools (svscan/supervise/svscanboot)"
  task :start, :roles => :app do
    sudo "svscanboot&"
  end
end

Agora isso não funciona: o processo svscanboot simplesmente não roda. Isso me ajudou a encontrarsleep: https://github.com/defunkt/resque/issues/284 outras fontes me indicaramnohup, redirectionepty => trueEntão eu tentei tudo isso.

run "nohup svscanboot >/tmp/svscanboot.log 2>&1 &"   # NO
run "(svscanboot&) && sleep 1"                       # NO
run "(nohup svscanboot&) && sleep 1"                 # YES!

Agora, alguém poderia me explicar por que eu preciso da declaração de sono e que diferença faz nohup? Para o registro todo o acima executado igualmente bem se executado a partir do shell do usuário, o problema é apenas no contexto do Capistrano.

obrigado

questionAnswers(5)

yourAnswerToTheQuestion