Назад | Перейти на главную страницу

searchd под runit продолжает запись в журнал runit

Запустить файл searchd (Sphinx):

#!/bin/sh
set -e

APP_PATH=/srv/application
TARGET_USER=user
exec chpst -u $TARGET_USER /usr/bin/searchd --pidfile --nodetach --config $APP_PATH/current/config/production.sphinx.conf 

хвост / вар / журнал / сфинкс / текущий

2014-06-07_18:13:56.87885 precached 9 indexes in 0.497 sec
2014-06-07_18:13:57.13740 precached 9 indexes in 0.497 sec
2014-06-07_18:13:57.88113 precached 9 indexes in 0.497 sec
2014-06-07_18:13:57.89167 precached 9 indexes in 0.497 sec
2014-06-07_18:13:59.75555 precached 9 indexes in 0.497 sec
2014-06-07_18:13:59.81554 precached 9 indexes in 0.497 sec
2014-06-07_18:14:00.33466 precached 9 indexes in 0.497 sec
... it continues to write the same line until sv stop sphinx ...

Все работает нормально, seachd запускается и отвечает на запросы. Но как сделать журналы менее повторяющимися? Когда я запускаю Sphinx вручную, он печатает «9 предварительно кэшированных индексов» только один раз.

Я почти уверен, что ваша проблема в том, что searchd разветвляется и демонизирует, что для запуска выглядит так, как будто он вышел. Таким образом, runv будет продолжать перезапускать searchd и каждый раз при запуске будет регистрировать сообщение.

Решение состоит в том, чтобы указать searchd оставаться на переднем плане с помощью переключателя --nodetach.