gpt4 book ai didi

php - Capistrano 重启 Apache

转载 作者:数据小太阳 更新时间:2023-10-29 08:48:49 25 4
gpt4 key购买 nike

我正在使用 Capistrano 部署 PHP 应用程序。我正在尝试添加在 Apache 完成后重新启动的功能,但随后我的脚本挂起(我猜是因为它失去了与 Web 服务器的连接)。有没有办法发送 service httpd restart 命令并在不等待的情况下返回?这是我正在做的(相关部分)...

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 用户身份登录,此命令将正常工作。否则,您将需要像

这样通过 sudo 运行它
run "#{sudo} service httpd restart"

并可能将 NOPASSWD:/sbin/service httpd* 添加到您的 sudoers 文件中。

您可能想要覆盖重启而不是网络 Hook :

namespace :deploy do

task :restart, :except => { :no_release => true } do
myapp.restart_webserver
end

end

此外,考虑在 Hook 后收紧你:

在“deploy:restart”、“myapp:restart_webserver”之后

关于php - Capistrano 重启 Apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19117008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com