如何在系统启动时启动MongoDB服务器?


85

每当系统重新启动时,我都必须启动我的MongoDB服务器。如何配置它以从我的操作系统开始?我在Ubuntu 11.04上。


1
我想知道为什么没人建议在这里使用新贵。
汤姆(Tom)

Answers:


132

我在Debian jessie上遇到了同样的“问题”,而我的简单解决方案是:

systemctl enable mongod.service

我认为在Ubuntu中是一样的。

-编辑-

根据评论,它也可以在Ubuntu上运行。在Ubuntu 18.04 LTS上,似乎是这样的解决方案:

systemctl enable mongodb.service

感谢@Adam。也许他们更改了服务名称


10
为我工作Ubuntu Mate 16.04.2 LTS
穆罕默德·盖尔巴纳

2
可惜官方文档中没有有关启动服务的信息。
UpTheCreek

2
可能需要(sudo) systemctl start mongod启动杂项服务
Jeff Xiao

2
也适用于ubuntu 18.04 LTS
89n3ur0n

1
仅对我有效,如果我在Ubuntu 18.04 LTS上更改mongod.servicemongodb.service-奇怪?
亚当

37

如果您使用高级打包工具(apt)安装MongoDB,它将配置启动脚本以在系统启动时自动运行Mongo。

步骤如下,首先配置易于下载的Mongo软件包:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo nano /etc/apt/sources.list

将此行添加到sources.list,然后保存:

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

然后使用apt-get实用程序下载并安装Mongo :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mongodb-10gen

如果要对配置进行任何更改,请编辑mongodb.conf并重新启动: 

sudo nano /etc/mongodb.conf
sudo service mongod restart

5
如果您想稍后对其进行更改以使其在启动时不会自动启动MongoDB,请编辑/etc/init/mongodb.conf
kynan

11

控制所有init.d服务链接应使用update-rc.d工具完成

即在默认运行级别下打开mongod守护程序(即在启动时将其打开):

update-rc.d mongodb defaults

有关更多信息,请参见https://help.ubuntu.com/community/UbuntuBootupHowto。该链接告诉您有关如何在启动时设置程序的所有信息。


2
10gen MongoDB发行版不使用System-V样式的初始化脚本,您需要进行编辑/etc/init/mongodb.conf
kynan 2012年

我需要这样做吗?
tofutim

5

如果您安装了MongoDB Community Edition(这是推荐的方式,因为它比Ubuntu软件包存储库中分发的软件包接收到的更新更为频繁),则可以通过upstart init脚本(默认情况下启动守护程序)配置start / stop行为。mongod开机时自动 /etc/init/mongod.conf

start on runlevel [2345]
stop on runlevel [06]

如果您希望它自动启动,请将这两行替换为

stop on runlevel [023456]

这会在任何人登录系统之前启动服务器吗?
加百利博览会

@GabrielFair是
kynan

5

我正在将crontab用于Ubuntu。它工作正常。为了能够编辑文件

Sudo crontab –e 

将此行添加到文件

@reboot sudo service mongod start &

最后的“&”感叹号有助于其工作。

Ctrl+ x退出,提示时按“ Y”。并将文件名保留为“ crontab”。


3

如果您具有Ubuntu 16.04 LTS,则可以启用mongo在启动时在控制台中键入以下命令:
sudo systemctl enable mongod
我在MongoDB Community Edition 3.6中使用了这种方法,并且可以使用。重新启动计算机并测试mongo是否正在运行键入:
sudo service mongod status


3

您可以使用systemctl命令在系统引导运行时启用mongo服务。

创建一个服务,使

sudo nano /etc/systemd/system/mongodb.service

将内容放入文件

[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target

[Service]
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongodb
Group=mongodb
StandardOutput=syslog
StandardError=syslog

之后,您将能够使用服务命令,例如

sudo service mongod start|stop|restart

然后如果要在计算机启动时进行弥补,则可以在以下位置创建mongod文件 /etc/init.d/


1

chkconfig --levels 235 mongod on

mongodb是您的服务的名称


2
默认情况下,10gen MongoDB发行版不使用System-V样式的初始化脚本(尽管提供了一个),请编辑/etc/init/mongodb.conf
kynan 2012年

@kynan怎么编辑?我如何更改/添加到mongod.conf文件?
Kieveli 2016年

@Kieveli:看到这个答案
kynan 2016年

1

我一直以这篇文章为起点来启动并运行新的分片设备。它包括我还使用过的有关配置新贵的部分。

http://joslynesser.com/blog/archives/2010/09/28/mongodb-sharding-guide-server-setup-on-ubuntu-ec2/


1
请不要发布“仅外部链接”。将来外部链接可能会断开,并且此答案可能不完整。除了链接之外,请在此处发布文章的相关部分:发布显示“如何在系统启动时启动MongoDB服务器?”的部分。使用新贵。
2011年

1

如果你有安装MongoDB中apt-get所描述的MongoDB的Ubuntu的安装指南中,它会拿出一个基本的启动脚本和配置文件。(强烈建议使用配置文件)

您也可以在这里查看链接到init.d脚本的旧帖子。

在这两种情况下,基本前提都是要先设置服务,然后再配置为从计算机开始启动。对于服务器来说,这是相当普遍的技术,很多教程都可以做到这一点。


2
04年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.