使用Rails 3.2和思考Sphinx 3.0.6。当我检查在我的生产环境中运行的进程时,我得到了这个:
deployer@vps:~$ ps aux | grep search
deployer 401 0.0 0.0 102340 1588 ? S 10:38 0:00 searchd --pidfile --config /home/deployer/abc/releases/1/config/production.sphinx.conf
deployer 402 47.0 0.7 248984 29944 ? Sl 10:38 0:12 searchd --pidfile --config /home/deployer/abc/releases/1/config/production.sphinx.conf
Sphinx有2个进程。这种行为是对的吗?
每当我运行ts:stop
时,它都会挂起,我必须手动终止其中一个进程才能停止Sphinx。我不确定这是否是由这两个过程引起的。
更新1
我的thinking_sphinx.yml
:
production:
pid_file: /home/deployer/abc/shared/pids/searchd.pid
indices_location: /home/deployer/abc/shared/db/sphinx
searchd_file_path: /home/deployer/abc/shared/db/sphinx
config_file: /home/deployer/abc/shared/config/production.sphinx.conf
mysql41: 9312
mem_limit: 512M
答案 0 :(得分:2)
两个过程是正常的 - TS v3使用Sphinx的线程工作者(因此,您将看到主进程和至少一个子进程)。
关于ts:停止问题 - 我认为这是通过Capistrano?这可能是因为当前部署的版本不存在配置文件。您应该将文件位置(使用configuration_file设置)更改为共享目录中的某个位置。
这在the deployment documentation中有所涉及(但仅在一个月前添加)。
对于yml设置 - 您可以删除searchd_file_path
,因为它已被TS v3中的indices_location
替换,而config_file
应为configuration_file
。