首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用start-stop-daemon时不能多次启动mongodb吗?

使用start-stop-daemon时不能多次启动mongodb吗?
EN

Stack Overflow用户
提问于 2012-05-20 04:54:41
回答 3查看 1.9K关注 0票数 3

我一直通过在同一台服务器上启动多个mongod进程来测试副本集(因为使用多个服务器的成本更高,而我只是在这一点上进行测试)。

然而,由于我已经将mongo更新到了v2.0.5版本,所以当我再次尝试启动mongod (在另一个端口上,使用另一个数据库文件夹等)时,我得到了以下信息:

mongod already running

为何会这样呢?是否有跳过此检查的标志?

更新:由于某种原因,这只会在我像这样运行mongod时发生:

sudo start-stop-daemon --start -c mainuser --exec /usr/local/bin/mongod -- --journal --nohttpinterface --dbpath /home/mainuser/data/db-secondary --logpath /home/mainuser/data/logs/mongodb-secondary.log --logappend --replSet appname --port 30001

当我像这样运行它时,它不会发生:

sudo /usr/local/bin/mongod --journal --nohttpinterface --dbpath /home/mainuser/data/db-secondary --logpath /home/mainuser/data/logs/mongodb-secondary.log --logappend --replSet appname --port 30001

不幸的是,我不得不在Ubuntu10.04LTS上的初创脚本中使用start-stop-daemon。为什么会导致这个问题?

在阅读了start-stop-daemon的手册页后,很明显,它故意不试图再次启动该进程,因为它将其识别为相同的“服务”。但是,我使用start-stop-daemon只是为了能够以不同的用户身份运行Upstart。有没有可能绕过检查,或者在upstart中以不同的方式以非sudo用户身份运行?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-20 05:55:13

这被证明是start-stop-daemon的一个特性,我和upstart一起使用它作为另一个用户运行。

由于不使用start-stop-daemon,此问题已得到解决。在我的启动脚本中,我现在以主用户身份使用sudo运行

代码语言:javascript
复制
sudo -u mainuser /usr/local/bin/mongod --journal --nohttpinterface --dbpath /home/mainuser/data/db-secondary --logpath /home/mainuser/data/logs/mongodb-secondary.log --logappend --replSet appname --port 30001
票数 0
EN

Stack Overflow用户

发布于 2015-06-04 23:25:44

可能的解决方案:您需要使用start-stop-daemon的key --name为不同的进程指定不同的名称。例如,对于node.js:

start-stop-daemon --name node-charts --start --exec /usr/bin/node -- someapp.js

start-stop-daemon --name node-web --start --exec /usr/bin/node -- someotherapp.js

如果没有名称,它将不会启动,因为它具有相同的/usr/bin/node进程名称。

票数 1
EN

Stack Overflow用户

发布于 2013-06-23 01:01:26

这是因为正在运行的mongod已经存在一个pid文件。

只需对start-stop-daemon使用不同的pid即可。例如,

代码语言:javascript
复制
sudo start-stop-daemon --start --pid=/var/run/mongodb2.pid --chuid mongodb --exec  /usr/bin/mongod -- --config /etc/mongodb2.conf

这样它就不会抱怨"/usr/bin/mongod已经在运行了“

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10668810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档