![Trusty 的 CouchDB init.d 脚本](https://linux22.com/image/689245/Trusty%20%E7%9A%84%20CouchDB%20init.d%20%E8%84%9A%E6%9C%AC.png)
我已经通过 Apache CouchDB PPA ( ) 在 Trusty 机器上安装了 CouchDB 1.6.1 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 无效)。当前“执行此操作的最佳方法”是什么?
答案1
事实证明,使用 Upstart 启动/停止 CouchDB 失败的原因是它想要写入的目录(日志、数据等)与安装的默认目录不同,用户无法访问couchdb:couchdb
。也就是说,以下操作解决了这个问题:
chown -R couchdb:couchdb /path/to/couchdb
我几乎是偶然发现这一点的。显然,由于它无法写入所需的日志文件,所以这毫无用处。但是,Upstart 日志更好地表明了出了什么问题!
无论如何,就其本身而言,该init.d
脚本只是无关紧要的烟幕弹。只要它能够访问所需的一切,它就可以按文档所述工作。