如何在Ubuntu 16.04 LTS上运行Mongodb作为服务?

sudo initctl start mongod

他没有耍花招.

推荐答案

任何升级或安装Ubuntu16.04(也被称为UbuntuXenial xerus)的人都注意到一些旧服务停止运行.

这就是我在MongoDB的情况.长话短说,Ubuntu从暴发户变成了systemd.对于这些问题,一个常见的解决方案是切换回upstart.我不认为这个选项是一个真正的解决方案,当然不是从长远来看.

解决这个问题的真正方法(IMHO)是编写systemd脚本,启动MongodDB.不幸的是,MongoDB的人还没有提供一个.

所以我不得不从头开始写.要创建自己的一个,请执行以下步骤:

  1. 使用

或者使用sudo完成以下所有步骤.

  1. 创建服务脚本(在本例中,服务的名称为Mongodb)

    nano /lib/systemd/system/mongodb.service
    
  2. 文件内容应该是

    [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
    

You can also download the file from here: mongodb.service
Here is a quick description of the important fields:
ExecStart - Is the command to run. Mongo installs itself under /usr/bin and the configuration file is written at /etc
User - The uid of the mongod process.
Group - The gid of the mongod process. Note that the user and group are created by the installation.

现在开始mongodb:

sudo systemctl start mongodb

要停止mongodb服务,请使用:

sudo systemctl stop mongodb

在启动时启用mongodb

sudo systemctl enable mongodb.service

如果需要刷新服务,请使用:

 sudo systemctl daemon-reload

Mongodb相关问答推荐

在MongoDB查询中添加来自另一个集合的匹配文档的计数

如何在MongoDB中查找和过滤嵌套数组

如何使用ID数组对一个集合中的金额求和并更新另一个集合中的字段?

在Mongoose中对嵌套文档设置时间戳,但不对父文档设置时间戳

如何根据两个 struct 创建一个Mongo文档?

MongoDB对两个串联数组进行排序

如何获取键值对的对象,其中值仅具有 mongoDB 中的投影字段

使用 multer 在我的 MERN 前端显示 MongoDB 图像的正确语法是什么?

按数组mongodb中的第一个元素排序

对 MongoDB 集合中的对象数组进行排序

为什么 local.oplog.rs 上每隔几分钟的活动就会锁定 mongo 客户端

使用模拟 MongoDB 服务器进行单元测试

MongoDB $或PHP中的查询

mongodb中类型不相等的查询

请按语法排序 Mongoid Scope

NoSQL:MongoDB 或 BigTable 并不总是 Available意味着什么

MongoDB Compass 过滤器(查询)

如何在 MongoDB 聚合查询中使用 $hint?

如何仅通过一次调用将一组对象保存到mongoose数据库?

MongoDB 用 $type 匹配一个数组?