Думая, что sphinx не запускается - не удалось запустить демон searchd

Я пытаюсь начать думать о сфинксе на своем сервере, но он не хочет работать.

I do:

$ rake thinking_sphinx:index && rake thinking_sphinx:start

И я получаю:

Generating Configuration to /vol/www/apps/ror_tutorial/releases/20120202111730/config/development.sphinx.conf
Sphinx 2.0.3-release (r3043)
Copyright (c) 2001-2011, Andrew Aksyonoff
Copyright (c) 2008-2011, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/vol/www/apps/ror_tutorial/releases/20120202111730/config/development.sphinx.conf'...
indexing index 'micropost_core'...
WARNING: collect_hits: mem_limit=0 kb too low, increasing to 13568 kb
collected 0 docs, 0.0 MB
total 0 docs, 0 bytes
total 0.008 sec, 0 bytes/sec, 0.00 docs/sec
skipping non-plain index 'micropost'...
indexing index 'user_core'...
WARNING: collect_hits: mem_limit=0 kb too low, increasing to 13568 kb
collected 0 docs, 0.0 MB
total 0 docs, 0 bytes
total 0.012 sec, 0 bytes/sec, 0.00 docs/sec
skipping non-plain index 'user'...
total 2 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 10 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
Failed to start searchd daemon. Check /vol/www/apps/ror_tutorial/releases/20120202111730/log/searchd.log.
Failed to start searchd daemon. Check /vol/www/apps/ror_tutorial/releases/20120202111730/log/searchd.log
Be sure to run thinking_sphinx:index before thinking_sphinx:start

Система моего сервера - Ubuntu 10.04. Кроме того, на моем локальном компьютере (Mac OS X) он работает отлично.

Мой sphinx.yml:

development:
  bin_path: "/usr/local/bin"
  searchd_binary_name: searchd
  indexer_binary_name: indexer

test:
  bin_path: "/usr/local/bin"
  searchd_binary_name: searchd
  indexer_binary_name: indexer

config/deploy.rb

#Add RVM's lib directory to the load path.
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))

#Load RVM's capistrano plugin.    
require "rvm/capistrano"
require 'bundler/capistrano'
#require 'thinking_sphinx/deploy/capistrano'

set :rvm_ruby_string, '1.9.3-head'                                            #This is current version of ruby which is uses by RVM. To get version print: $ rvm list 
set :rvm_type, :root                                                          #Don't use system-wide RVM, use my user, which name is root.

set :user, "root"                                                             #If you log into your server with a different user name than you are logged into your local machine with, you’ll need to tell Capistrano about that user name.
set :rails_env, "production"

set :application, "ror_tutorial"
set :deploy_to, "/vol/www/apps/#{application}"

set :scm, :git
set :repository,  "git://github.com/Loremaster/sample_app.git"
set :branch, "master"
set :deploy_via, :remote_cache
default_run_options[:pty] = true                                              #Must be set for the password prompt from git to work#Keep cash of repository locally and with ney deploy get only changes.


server "188.127.224.136", :app,                                               # This may be the same as your `Web` server
                          :web,
                          :db, :primary => true                               # This is where Rails migrations will run


# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
   task :start do ; end
   task :stop do ; end
   task :restart, :roles => :app, :except => { :no_release => true } do
     run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
   end
end


desc "Prepare system"
  task :prepare_system, :roles => :app do
    run "cd #{current_path} && bundle install --without development test && bundle install --deployment"
  end

  after "deploy:update_code", :prepare_system

person ExiRe    schedule 02.02.2012    source источник


Ответы (3)


Я решил это. У меня был процесс sphinx в фоновом режиме, поэтому я просто убил его:

$ ps -efa | grep sphinx
root     23823     1  0 14:12 ?        00:00:00 searchd --pidfile --config /vol/www/apps/ror_tutorial/releases/20120202111104/config/production.sphinx.conf
root     27069 20413  0 14:49 pts/1    00:00:00 grep sphinx
$ kill 23823 

Затем я начал сфинкс:

$ rake ts:start RAILS_ENV=production
Started successfully (pid 27097).
person ExiRe    schedule 02.02.2012
comment
привет, у меня возникает эта проблема, когда я делаю rake think_sphinx:start.... я получаю следующую ошибку: не удалось запустить демон searchd. Проверьте /home/user/newsvn/alumnicell/log/searchd.log. Не удалось запустить демон searchd. Проверьте /home/user/newsvn/alumnicell/log/searchd.log Обязательно запустите think_sphinx:index перед think_sphinx:start, что мне делать - person NJF; 28.05.2012
comment
Я думаю, вам следует задать еще один вопрос о stackoverflow. - person ExiRe; 31.05.2012
comment
Кроме того, вы можете использовать pgrep searchd для поиска запущенного процесса. - person Stone; 12.12.2012
comment
Я пробую ваше решение, но оно у меня не работает, вот что я публикую в переполнении стека stackoverflow.com/questions/36124694/ - person Zia Qamar; 21.03.2016

Похоже, что init уже запустил экземпляр searchd, привязанный к порту 9312.

Есть несколько решений:

  1. Уничтожить системный экземпляр searchd: sudo service sphinxsearch stop.
  2. Измените config/sphinx.yml и скажите Sphinx использовать другой порт в рабочей среде. (config/thinking_sphinx.yml, если вы используете TS 3.x)
  3. Настройте свой сервер, чтобы он не запускал searchd при загрузке системы. В Ubuntu 14.04 вы можете сделать это, отредактировав /etc/defaults/sphinxsearch и установив START=no.

Наш сервер работает под управлением Ubuntu, и я установил Sphinx из пакета Debian, доступного на веб-сайте Sphinx.

person declan    schedule 16.10.2012

В моем случае я проверил этот файл: ../yourdirectory/log/searchd.log и было написано, что: /usr/local/var/data/binlog.002: No such file or directory я делаю только это:

touch /usr/local/var/data/binlog.002

Готово, работает нормально.

person Wylkon    schedule 07.07.2015