Я установил CouchDB 1.6.1 на сервер Trusty через Apache CouchDB PPA ( couchdb / stable
). Кажется, все это работает, за исключением того, что я не могу запустить службу с помощью service couchdb start
(аналогично для остановки). Я обошел это, поместив следующий сценарий в / usr / local / bin
:
#!/bin/bash
export ERL_FLAGS="+A 16"
export ERL_MAX_PORTS=8192
nohup couchdb > /opt/couchdb/log/couch.log 2>&1 &
Я должен запустить это вручную (или остановить его с помощью kill
). Команды службы
говорят, что они работают, но CouchDB сразу дает сбой. Это нормально, за исключением тех редких случаев, когда компьютер требует перезагрузки; было бы хорошо, если бы CouchDB запускался автоматически.
На разных страницах, которые я нашел в Интернете, есть ссылка на связанный скрипт init.d
. Фактически, я обнаружил сгенерированный init.d
скрипт , который предполагается установить вместе с CouchDB: я попробовал это, отредактировал соответствующим образом, но та же проблема осталась.
Похоже, что большая часть документации, которую я нашел в Интернете, очень устарела (например, она ссылается на пути, которые недействительны для установленной версии PPA и / или Trusty). Каков текущий «лучший способ сделать это»?
Оказывается, причина сбоя запуска / остановки CouchDB с Upstart заключалась в том, что каталог, в который он хотел записать (журналы, данные и т. .) - который отличался от установленного по умолчанию - был недоступен для пользователя couchdb: couchdb
. То есть следующее устранило проблему:
chown -R couchdb:couchdb /path/to/couchdb
Я обнаружил это почти случайно. Очевидно, что, поскольку он не мог записывать в нужный файл журнала, это было бесполезно. Однако журналы Upstart лучше указывают на то, что пошло не так!
В любом случае, сценарий init.d
как таковой - неуместный отвлекающий маневр. Он работает, как описано в документации, при условии, что у него есть доступ ко всему, что ему нужно.