Недавно я обновил виртуальную машину до Redhat 5 и переместил Sphinx Search на этот сервер. По какой-то причине, когда я пытаюсь запустить Sphinx, скрипт запуска не может перевести процесс searchd в фоновый режим. Я создал тестовый скрипт с минимальной версией стартового вызова, которая выглядит следующим образом:
#!/bin/sh
. /etc/rc.d/init.d/functions
daemon /usr/local/sphinx/bin/searchd --config
/home/app/code/server_config/sphinx_config.php
Процесс searchd запускается, и я получаю вывод, который указывает, что он прослушивает правильный IP: порт, но процесс никогда не возвращается.
Зависающий процесс находится в вызове демона, и ps показывает это как:
/bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/local/sphinx/bin/searchd --config
/home/app/code/server_config/sphinx_config.php
Есть идеи о том, что может быть причиной этого или как устранить неполадки? Мы используем тот же процесс примерно на дюжине других серверов, на которых запущен Redhat 4, которые работают нормально (хотя процесс, созданный демоном, использует initlog, поэтому он другой).
Оказалось, что со сценарием инициализации все в порядке, но этот sphinx searchd запускался очень долго. На виртуальной машине было выделено недостаточно памяти, поэтому возникли проблемы при запуске с большими индексами. Увеличил выделение памяти и теперь работает нормально.