capistrano görevfırlatma arka plan işlemi
namespace :service do
desc "start daemontools (svscan/supervise/svscanboot)"
task :start, :roles => :app do
sudo "svscanboot&"
end
end
Şimdi bu işe yaramazsa: svscanboot süreci basitçe çalışmaz. https://github.com/defunkt/resque/issues/284 diğer kaynaklar nohup
, redirection
ve pty => true
beni işaret etti, bu yüzden tüm bu çalıştı: Bu beni sleep
bulmak yardımcı oldu.
run "nohup svscanboot >/tmp/svscanboot.log 2>&1 &" # NO
run "(svscanboot&) && sleep 1" # NO
run "(nohup svscanboot&) && sleep 1" # YES!
Şimdi, herkes neden uyku ifadesine ihtiyacım olduğunu ve nohup'un ne gibi bir fark yarattığını açıklayabilir mi? Kullanıcı kabuğundan çalıştırılırsa, yukarıdaki tüm işlemler eşit derecede iyi kayıt için sorun yalnızca kapistrano bağlamındadır.
sayesinde
'nohup', komutunuz sonlandıktan sonra komutunuzun" SIGHUP "sinyalini aldığında sona erdirilmemesini sağlar. Ancak, aynı zamanda uyku komutunun neden bir fark yarattığını merak ediyorum. – Graeme
Uyku, dünyamda da bir fark yaratıyor. Capistrano ile bu kadar basit bir görevin neden bu kadar şaşırtıcı bir şekilde zor olduğunu anlamak mistik. – cbmanica
Aynı davranışı görüyorum. Ve aynı şeyi de merak ediyorum. – aslakjo