Я успешно установил couchdb через homebrew:
% brew install couchdb
... и вызвал несколько экземпляров, как указано Вот:
% OLD=/usr/local
% NEW=/tmp/couchdb
% mkdir -p $NEW/etc/couchdb/
% mkdir -p $NEW/var/{lib,log,run}/couchdb/
% cp $OLD/etc/couchdb/local.ini $NEW/etc/couchdb/
local.ini изменяется:
[couchdb]
database_dir = /tmp/couchdb/var/lib/couchdb
view_index_dir = /tmp/couchdb/var/lib/couchdb
uri_file = /tmp/couchdb/var/run/couchdb/couch.uri
[httpd]
port = 5985
bind_address = 0.0.0.0
[log]
file = /tmp/couchdb/var/log/couchdb/couch.log
... и запускаем команду запуска:
% couchdb -i -a /tmp/couchdb/etc/couchdb/local.ini
Теперь, когда у меня это работает, как я могу запускать каждый экземпляр при загрузке, и если я хочу убить экземпляр (предпочтительно по имени или известному идентификатору), как это можно сделать выборочно? Я запускаю OSX Mountain Lion 10.8.3 (с инструментами командной строки Xcode), если это помогает.
OS X способ запустить что-либо при загрузке: launchd
, в частности LaunchDaemon
. Для полного понимания стоит прочитать документация Apple по launchd
; Кроме того, здесь есть много вопросов и ответов, которые помогут вам.
Краткая версия: вам понадобится файл, например /Library/LaunchDaemons/org.inator.couchdb
это выглядит примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.inator.couchdb</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/couchdb</string>
<string>-i</string>
<string>-a</string>
<string>/tmp/couchdb/etc/couchdb/local.ini</string>
</array>
<key>OnDemand</key>
<false/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Обратите внимание, что это будет работать как root
; если вы хотите, чтобы он запускался от имени конкретного пользователя, вам нужно будет использовать sudo
(например sudo -u inator /usr/local/couchdb …
).
Для запуска и работы вручную вы можете load
и unload
это из launchd
с помощью launchctl
, например:
launchctl load /Library/LaunchDaemons/org.inator.couchdb
launchctl unload /Library/LaunchDaemons/org.inator.couchdb
Если вам нужен другой экземпляр, просто создайте новый файл в /Library/LaunchDaemons
с другим именем файла (и подходящим Label
).