我有两个 Azure 虚拟机。在一个服务器上我有一个 Mongo 服务器,在另一个服务器上我只有一个我创建的服务,它监听 Twitter 流 API 并过滤推文。
除非我手动激活它们并保持控制台窗口打开,否则这两个服务都不起作用。例如,要运行 Mongo,我需要 ssh 进入虚拟机并输入:mongod --config/etc/mongod.conf
。这成功启动了 Mongo 服务器,但如果我随时关闭浏览器,服务就会停止。
我相信发生这种情况的原因是,当我登录时,系统为我分配了一个进程,我可以通过该进程在系统中导航并执行命令。当我输入 mongod --config/etc/mongod.conf 时,我相信我正在使用该进程来运行 Mongo。我不知道如何让 Mongo 在不这样做的情况下运行。
如何使 Mongo 始终在我的 Azure 服务器上自动运行?
编辑:
我尝试将 Mongo 作为守护进程运行,但收到错误:
$ mongod --fork --logpath /var/log/mongodb.log
>>>about to fork child process, waiting until server is ready for connections.
>>>forked process: 63470
>>>ERROR: child process failed, exited with error number 1
最佳答案
此问题与 Azure 无关;这完全取决于您如何安装 MongoDB。
如果您通过 apt-get (或您的 Linux 版本需要的任何其他方式)将 mongodb 安装为服务,那么它将独立于您登录而运行。您不应该通过以下方式运行始终在线的服务你的命令外壳。
这里是instructions用于在 Ubuntu 下安装。您将看到,一旦设置了必备的公钥和列表文件,您就可以运行:
sudo apt-get install -y mongodb-org
然后您可以通过以下方式启动和停止服务
sudo service mongod start
和
sudo service mongod stop
关于mongodb - 如何使 Mongo 始终在我的 Azure 服务器上自动运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29171196/