Я устанавливал Solr с Jetty, используя эти инструкции. По сути, эти инструкции заставляли вас загрузить сценарий запуска Jetty и скопировать его в /etc/init.d/jetty.
Но это не сработало. Каждый раз, когда я запускал Jetty, у меня появлялось сообщение «FAILED», и я ничего не мог понять, почему это происходит. Я решил открыть сценарий /etc/init.d/jetty, чтобы понять, что происходит. Я видел, что этот сценарий использовал start-stop-daemon для запуска причала. Через пару раз отладки я обнаружил, что удаление --daemon
опция в конце вызова start-stop-daemon решала мою проблему.
Я провел несколько исследований и обнаружил, что у этого парня была такая же проблема и решил это так же, как и я: я удалил --daemon
вариант.
Что странно, так это то, что переключатель не кажется специфичным для start-stop-daemon, потому что он не задокументирован на странице руководства. Кроме того, я видел, как он используется для других команд.
Так что это --daemon
вариант делаете? И почему его удаление решило мою проблему?
Обратите внимание, что я работаю над Ubuntu 10.04.2 LTS.
Я до сих пор не знаю, что делает флаг --daemon, и так и не нашел ответа. По моему опыту, похоже, что флаг --daemon добавлялся к команде в качестве опции. Команда не выполняется, поэтому ничего не происходит. В вашем случае использование опции -b вызывает разветвление процесса, что, как я считаю, дало ему новую стандартную ошибку и вывод, поэтому вы не видите результирующую ошибку из-за того, что выброшен флаг --daemon. Параметр -b также не позволяет демону start-stop-daemon узнать, завершился ли процесс ошибкой или нет.