当我尝试通过 capistrano 部署我的应用程序时,在 ts:stop 命令上有无限冻结,因此部署过程无法顺利完成。有任何想法吗?
这是一个跟踪日志:
** Invoke ts:stop (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute ts:stop
当我尝试通过 capistrano 部署我的应用程序时,在 ts:stop 命令上有无限冻结,因此部署过程无法顺利完成。有任何想法吗?
这是一个跟踪日志:
** Invoke ts:stop (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute ts:stop
在我看来,问题来自我认为找不到的 pid_file。该文件必须在 Capistrano 版本控制之外。
如文档中所述,您的以下内容中应该有类似的内容thinking_sphinx.yml
:
production:
mysql41: 9312
enable_star: true
min_prefix_len: 3
utf8: true
pid_file: /my_project/sphinx/production.searchd.pid
indices_location: /my_project/pinchix/shared/sphinx
如果你不这样做,因为 Capistrano 正在创建版本控制文件夹,Thinking Sphinx 将无法在部署文件夹上找到 pid(默认情况下它正在搜索当前文件夹)然后会阻塞,因为它无法启动新的如果另一个已经启动(端口不是空闲的),则返回一个。
Make sure you're starting sphinx and running after deploy hooks with the same ruby version. In my case versions was different and setting rvm default
and specifying ruby version and correct gemset in deploy.rb solved the problem.