Автоматически запускать программу (Sphinx searchd) при перезапуске сервера?

2368
Nate

Когда мой сервер (с CENTOS) перезагружается, я должен вручную запустить searchd для каждого веб-сайта, на котором я использую Sphinx.

Это не сложно сделать (просто скопируйте / вставьте одну строку в терминале для каждого сайта), но если я забуду это сделать или не знаю, что сервер был перезапущен, поиск на моих сайтах будет отключен.

Команда, на которую я ссылаюсь, чтобы запустить searchd:

/usr/local/bin/searchd --config /path/to/sphinx/etc/sphinx.conf 

Есть ли способ автоматического запуска searchd при перезапуске моего сервера?

2
Измените сценарии запуска / остановки apache для запуска / остановки sphinx? ssnobody 9 лет назад 1
searchd является частью Sphinx, а не Apache, поэтому это отдельный сервис. Вам не нужно перезапускать его при перезапуске Apache. Чтобы убедиться, что служба работает, добавьте указанную выше команду в `/ etc / rc.local`. harrymc 9 лет назад 0
@harrymc Я думаю, ты прав. Я меняю свой вопрос. Nate 9 лет назад 1
Какую версию CentOS вы используете? Это важно знать, потому что CentOS 7 использует systemd для запуска системы. FSMaxB 9 лет назад 0
@FSMaxB у меня версия 6.6 Nate 9 лет назад 0

3 ответа на вопрос

4
João Martins

в моем случае (Debian 8.9)

 /usr/bin/searchd --config /etc/sphinxsearch/sphinx.conf 

не запускается sphinx и вместо этого мне нужно запустить

 sudo service sphinxsearch start 

чтобы начать сфинкс

Ответ от harrymc указал мне на правильное решение, и когда я отредактировал

 sudo nano /etc/rc.local 

и включены

 sudo service sphinxsearch start 

как раз перед строкой выхода 0, после загрузки он, наконец, загрузил sphinx.

2
harrymc

Чтобы настроить автоматический запуск Sphinx, начните с добавления команды searchdstart в rc.localфайл сервера :

sudo vim /etc/rc.local 

Вставьте следующий код прямо над exit 0строкой:

/usr/bin/searchd --config /var/www/yoursitecom/sphinx/etc/sphinx.conf 

Теперь, когда все настроено и работает, чтобы убедиться, что индекс соответствует актуальности базы данных, запустите crontab, чтобы вращать (перестраивать) индекс каждые 6 часов:

sudo crontab -e 

Добавьте следующую строку в конец документа.

0 */6 * * * /usr/bin/indexer --rotate --config /var/www/yoursitecom/sphinx/etc/sphinx.conf --all 

Источник: Работа со Sphinx (поисковой системой) на стековом сервере LAMP (Linux, Apache, MySQL и PHP) .

0
dtoubelis

You may also consider using something like supervisor. It is not as simple as using /etc/rc.local and it require some configuration but it gives more flexibility.

Похожие вопросы