1
我正在使用Capistrano部署PHP应用程序。我试图添加重启Apache的能力,一旦它完成,但然后我的脚本挂起(我猜,因为它失去了从Web服务器的连接)。有没有办法发送service httpd restart
命令并返回而无需等待?下面是我在做什么(相关部分)...Capistrano重新启动Apache
namespace :myapp do
task :restart_webserver do
#Show Start of Task
print "Restarting webserver..."
# Restart Web Server
run "service httpd restart"
# Show Green Check Mark on Completion
puts checkmark.gsub(/\\u[\da-f]{4}/i) { |m| [m[-4..-1].to_i(16)].pack('U') }.green
end
end
after "deploy","myapp:restart_webserver"
它挂在重新启动,然后我不得不Ctrl+C
出脚本来让它结束。任何方式来使这个非阻塞?
我以root用户身份进行连接。我知道... ...皱起眉头......但部署访问是IP地址有限,所以它不是太糟糕。我发现将'&'添加到命令的末尾会让它继续......但服务器实际上不会重新启动。所以不知道那里发生了什么。也许我需要深入了解Ruby中的流程分叉如何工作: -/P.S.我的deploy.rb在没有服务器重启位的情况下工作正常(并且已经持续了数周)。只是试图进一步自动化。 –
有没有想过只是重载重启? – Electrawn
我会试试看。 –