uruchomienie procesu w tle w zadaniu capistrano

zadanie capistrano

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

Teraz to nie działa: proces svscanboot po prostu nie działa. To pomogło mi znaleźćsleep: https://github.com/defunkt/resque/issues/284 inne źródła wskazały minohup, redirection, ipty => true, więc spróbowałem tych wszystkich.

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

Czy ktoś mógłby mi wyjaśnić, dlaczego potrzebuję oświadczenia o śnie i jaką różnicę robi nohup? Dla rekordu wszystkie powyższe działają równie dobrze, jeśli są uruchamiane z powłoki użytkownika, problem jest tylko w kontekście capistrano.

dzięki

questionAnswers(5)

yourAnswerToTheQuestion