我有两个Azure虚拟机。在一个我有一个Mongo服务器,另一方面我只有一个我创建的服务,它听取Twitters流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
答案 0 :(得分:3)
此问题与Azure无关;这就是你如何安装MongoDB。
如果您将mongodb作为服务安装,通过apt-get(或您的Linux版本需要的其他任何方式),那么它将独立于您登录而运行。您不应该通过以下方式运行永远在线服务你的命令shell。
以下是instructions,可以在Ubuntu下安装。您将看到,一旦设置了先决条件公钥和列表文件,就可以运行:
sudo apt-get install -y mongodb-org
然后,您可以通过
启动和停止服务sudo service mongod start
和
sudo service mongod stop
答案 1 :(得分:0)
您可以通过在控制台中键入以下命令来使mongo在启动时自动启动:
sudo systemctl enable mongod
然后通过以下命令对其进行测试:
sudo service mongod status