Как изящно перезапустить демон поиска Sphinx после переиндексации
Я переиндексировал свой поиск Сфинкса с /usr/local/sphinx/bin/indexer --all --rotate
и переименовал мои исходные выходные файлы индекса в что-то другое. Просто изменение аргумента индекса, переданного в $sphinx->Query($query, $index);
возвращает никаких результатов.
Я подозревал, что демон не знает о существовании новых индексных файлов. Поэтому я побежал
sudo /usr/local/sphinx/bin/searchd
снова, чтобы попытаться перезапустить его. Но он бросил
FATAL: failed to lock pid file '/usr/local/sphinx/var/log/searchd.pid': Resource temporarily unavailable (searchd already running?)
Я должен kill
2 процесса демона поиска и запустить его снова, чтобы захватить из новые индексные файлы. Есть ли изящный способ перезапустить его?
4 ответов
Я знаю, что это поздний ответ, но просто чтобы вы знали, чтобы "перезапустить" Сфинкса, вам нужно остановить его, а затем запустить его (как в двух разных процессах).
чтобы остановить его, вызвать searchd --stop
тогда просто запустите его снова с searchd
.
вам нужно вызвать индексатор на новый индекс, чтобы создать его, а затем -- rotate, чтобы обновить его.
Так это будет что-то вроде
indexer --config /path/to/config.conf indexname
а затем, когда вы просто хотите обновить свои индексы
indexer --config /path/to/config.conf --rotate --all
Это создаст временную копию каждого индекса и заменить старых, когда закончите. Для получения дополнительной информации о том, что на самом деле происходит, см. http://sphinxsearch.com/docs/manual-0.9.9.html#ref-indexer
о другой ошибке ваш получать Do
ps aux | grep searchd
если он не возвращает результатов, то удалите /usr/local/sphinx/var/log / searchd.пид-регулятор и снова запустите searchd
Кажется, есть проблема с searchd --stop
команда не может остановить демона на некоторых экземплярах Sphinx.
попробуй: service sphinxsearch stop
см.:https://bugs.launchpad.net/ubuntu / + источник / sphinxsearch/ + ошибка/990395