запуск фонового процесса в задаче capistrano
задача капистрано
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/284
другие источники указали мне наnohup
, 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.
Спасибо