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 индексов" только один раз.
1 ответ
Я почти уверен, что ваша проблема в том, что searchd разветвляется и демонизируется, что для запуска выглядит так, как будто оно вышло. Таким образом, runs будет продолжать перезапускать searchd, и каждый раз, когда он запускается, он будет записывать сообщение.
Решение состоит в том, чтобы указать searchd оставаться на переднем плане с помощью ключа --nodetach.