Starten des Hintergrundprozesses in der Capistrano-Task

Capistrano Aufgabe

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

Das funktioniert jetzt nicht: Der Prozess svscanboot wird einfach nicht ausgeführt. Das hat mir geholfen zu findensleep: https://github.com/defunkt/resque/issues/284 andere Quellen haben mich darauf hingewiesennohup, redirection, undpty => trueAlso habe ich all das ausprobiert.

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

Könnte mir jemand erklären, warum ich die Schlaf-Erklärung brauche und welchen Unterschied Nohup macht? Für die Aufzeichnung laufen alle oben genannten gleich gut, wenn sie von der Benutzer-Shell ausgeführt werden, das Problem liegt nur im Kontext von capistrano.

Vielen Dank

Antworten auf die Frage(5)

Ihre Antwort auf die Frage