我看到 ruby-china 有这行代码,但是他们用的是同一个 unicorn.rb
if ENV["DEPLOY"] == "pre"
set :deploy_to, "/data/www/#{application}-pre"
else
set :deploy_to, "/data/www/#{application}"
end
# unicorn.rb 路径
set :unicorn_path, "#{deploy_to}/current/config/unicorn.rb"
那么部署 pre 的时候不担心杀掉原本的进程吗?
listen "/tmp/unicorn.xinplus.sock"
他 listen 的是同一个 sock,也就是说我启动了 pre 就需要把之前的 pro 干掉。还有点不明白的是 pre 的意义在哪?
@lgn21st Uncaught TypeError: Cannot read property 'length' of null app-c801ae3fea21b10950592995069cd126.js:5 顺便报个错,我回复的图片上传似乎不可用
#3 楼 @sanivbyfish 这个在开始重新定义了 root,所以不会有问题
def root
File.expand_path("../..", __FILE__)
end
#8 楼 @sanivbyfish 可以简单这样理解,文件路径其实是这样的: File.expand_path("../..", FILE) + "/tmp/unicorn.xinplus.sock"
而带 pre 和不带 pre 的是两个不同的目录,所以这也是两个不同的文件,各在各自的目录下,因此不会冲突。
#10 楼 @santochancf 不是我,我实验了一下,都是分别指向了/tmp 下,而不是在项目的目录下,所以 pre 跟 pro 的会有冲突
那么我怎么把 unicorn.rb 里面 listen 的分开呢?难道写 2 个文件?
写两个文件是一种办法,建议你最好确定一下代码: https://github.com/ruby-china/ruby-china/blob/master/config/unicorn.rb 这个应该是没问题的。