在Ubuntu 16.04 LTS上如何运行Mongodb作为服务?
前几天我将服务器升级到Ubuntu 16.04。我注意到,当我重新启动时,我的MongoDB服务没有启动。
试图使用
前几天我将服务器升级到Ubuntu 16.04。我注意到,当我重新启动时,我的MongoDB服务没有启动。
试图使用
sudo initctl start mongod
没有诀窍
任何人都有一个想法如何解决这个问题?
任何升级或安装Ubuntu 16.04(也称为Ubuntu Xenial xerus)的人都注意到一些旧服务停止运行。
这个问题从版本15.04已知,但我将专注于上述版本。
这个问题从版本15.04已知,但我将专注于上述版本。
这是MongoDB的情况。为了做一个很长的故事,Ubuntu从upstart转移到systemd。对于这些问题,一个常见的解决方案是切换回启动。我不认为这个选择是一个真正的解决方案,当然不是长期的。
一个真正的解决方案(IMHO)的问题是编写将启动MongodDB的系统脚本。不幸的是,MongoDB的家伙还没有提供一个。
所以我从头开始写一个。要创建一个你自己的,请按照下列步骤操作:
>切换到root使用
sudo su
或者使用sudo进行以下所有步骤。
>创建一个服务脚本(在这个例子中,服务的名称是Mongodb)
nano /lib/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 [Install] WantedBy=multi-user.target
您也可以从这里下载文件:
mongodb.service
以下是重要字段的简要说明:
ExecStart – 命令运行。 Mongo自身安装在/ usr / bin下,配置文件写入/ etc
用户 – mongod进程的uid。
组 – mongod进程的gid。请注意,用户和组是由安装创建的。
现在开始mongodb:
sudo systemctl start mongodb
停止mongodb服务使用:
sudo systemctl stop mongodb
启动时启用mongodb
sudo systemctl enable mongodb.service
如果您需要刷新服务使用:
sudo systemctl daemon-reload