gpt4 book ai didi

mongodb - 使用start-stop-daemon时无法多次启动mongodb?

转载 作者:可可西里 更新时间:2023-11-01 09:56:01 28 4
gpt4 key购买 nike

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

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

mongod 已经运行

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

更新:出于某种原因,这只会在我像这样运行 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

不幸的是,我必须在 Ubuntu 10.04 LTS 上的 upstart 脚本中使用 start-stop-daemon。为什么会导致这个问题?

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

最佳答案

可能的解决方案:您需要使用 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 进程名称。

关于mongodb - 使用start-stop-daemon时无法多次启动mongodb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10668810/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com