Назад | Перейти на главную страницу

CouchDB сценарий init.d для Trusty

Я установил 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 сценарий - неуместный отвлекающий маневр. Он работает, как описано в документации, при условии, что у него есть доступ ко всему, что ему нужно.