当我运行cap deploy时,我不确定unicorn是否能正确重启,因为应用程序中没有显示某些更改,因此我想在我的远程服务器上手动重启unicorn。我已经导航到etc/init.d,看到了unicorn_myapp的列表,但它不是一个目录(即我不能cd进入它)。基于我的deploy.rb文件中的以下代码,我可以从这里做些什么来重启unicorn吗?
我试着做run unicorn_myapp restart,但它说run不是一个命令
namespace :deploy do
%w[start stop restart].each do |command|
desc "#{command} unicorn server"
task command, roles: :app, except: {no_release: true} do
run "/etc/init.d/unicorn_#{application} #{command}"
end
end发布于 2013-10-14 09:10:47
你没有列出操作系统。但以下其中一种方法应该可以工作。
您需要是root用户/使用sudo
/etc/init.d/unicorn_myapp restart
/etc/init.d/unicorn_myapp stop
/etc/init.d/unicorn_myapp start
service unicorn_myapp restart
service unicorn_myapp stop
service unicorn_myapp start首先尝试重新启动版本,但根据init脚本的编写方式,它可能没有重新启动命令,如果该命令不起作用,您可以执行停止/启动版本。
发布于 2013-12-21 21:31:50
或者,与依赖于操作系统的/etc/init.d...脚本不同,重启unicorn的一种简单方法是向其主进程发送HUP (1)信号。
例如,我如何通过post-receive钩子在git push之后自动重新加载应用程序:
#!/bin/sh
unicorn_pid=`cat /tmp/pids/unicorn.pid`
echo "Restarting Unicorn ($unicorn_pid)"
kill -HUP $unicorn_pid在您的示例中,/etc/init.d/unicorn_myapp restart脚本可能正在执行此操作。检查unicorn.conf中其pidfile的位置。
有关更多详细信息,请参阅unicorn SIGNALS documentations
发布于 2013-10-14 09:10:02
您可能必须是根用户,但它应该是/etc/init.d/unicorn_myapp restart (不要包含run,它不是一个外壳命令)。
https://stackoverflow.com/questions/19352125
复制相似问题