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 有什么不同?作为记录,如果从用户 shell 运行,上述所有运行同样良好,问题仅在 capistrano 的上下文中。
谢谢