Я установил 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
). В service
команды говорят, что они работают, но CouchDB сразу дает сбой. Это нормально, за исключением тех редких случаев, когда компьютер требует перезагрузки; было бы хорошо, если бы CouchDB появлялся автоматически.
На разных страницах, которые я нашел в Интернете, есть ссылка на связанный init.d
сценарий. Фактически, я нашел генерируется init.d
сценарий, который должен быть установлен вместе с CouchDB: я пробовал это, отредактировал соответствующим образом, но та же проблема сохраняется.
Похоже, что большая часть документации, которую я нашел в Интернете, очень устарела (например, она ссылается на пути, которые недействительны с установленной версией PPA и / или Trusty). Какой в настоящее время «лучший способ сделать это»?
Оказывается, причина сбоя запуска / остановки CouchDB с Upstart заключалась в том, что каталог, в который он хотел записывать (журналы, данные и т. Д.), Который отличался от установленного по умолчанию, был недоступен для couchdb:couchdb
пользователь. То есть проблема была устранена следующим образом:
chown -R couchdb:couchdb /path/to/couchdb
Я узнал об этом почти случайно. Очевидно, что, поскольку он не мог записывать в нужный файл журнала, это было бесполезно. Однако журналы Upstart лучше показывают, что пошло не так!
Во всяком случае, как таковой init.d
сценарий - неуместный отвлекающий маневр. Он работает, как описано в документации, при условии, что у него есть доступ ко всему, что ему нужно.