You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 18.04 LTS安装MongoDB 4.4后无法通过service命令识别服务单元问题求助

解决Ubuntu 18.04 LTS手动安装MongoDB 4.4后无法通过service命令管理的问题

你遇到的核心问题是:手动二进制安装MongoDB时,系统不会自动创建对应的systemd服务单元文件,所以service命令找不到mongodb.service。下面是一步步的解决方法:

步骤1:创建MongoDB的systemd服务单元文件

我们需要手动添加一个systemd配置文件,让系统能识别MongoDB服务。执行以下命令打开编辑器创建文件:

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

将以下内容粘贴到文件中(注意路径和用户要和你的安装信息完全匹配):

[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target

[Service]
User=atinesh
Group=atinesh
ExecStart=/home/atinesh/Downloads/Current/MongoDB/mongodb-linux-x86_64-ubuntu1804-4.4.8/bin/mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

编辑完成后,按Ctrl+O保存,Ctrl+X退出编辑器。

步骤2:重新加载systemd配置

让systemd识别我们刚创建的服务文件:

sudo systemctl daemon-reload

步骤3:停止当前运行的MongoDB进程

因为你之前用--fork启动了MongoDB,需要先停止这个进程避免冲突:

mongod --dbpath /var/lib/mongo --shutdown

如果这个命令执行失败,可以通过进程号杀掉:

# 查找MongoDB进程号
ps aux | grep mongod
# 替换<进程号>为实际查到的数字
sudo kill <进程号>

步骤4:使用service命令管理MongoDB服务

现在你就可以用service或者systemctl命令来管理MongoDB了:

  • 启动服务:
    sudo service mongodb start
    
  • 查看服务状态:
    sudo service mongodb status
    
  • 设置开机自启:
    sudo systemctl enable mongodb
    
  • 停止服务:
    sudo service mongodb stop
    

额外注意事项

  • 如果服务启动失败,优先查看MongoDB日志文件/var/log/mongodb/mongod.log,里面会有详细的错误信息
  • 确保/var/lib/mongo/var/log/mongodb的权限确实属于atinesh用户,如果权限不对,执行以下命令修复:
    sudo chown -R atinesh:atinesh /var/lib/mongo
    sudo chown -R atinesh:atinesh /var/log/mongodb
    
  • 如果你需要添加更多MongoDB配置(比如启用认证、修改端口),建议创建一个配置文件(例如/etc/mongod.conf),然后修改ExecStart行,改为:
    ExecStart=/home/atinesh/Downloads/Current/MongoDB/mongodb-linux-x86_64-ubuntu1804-4.4.8/bin/mongod --config /etc/mongod.conf --fork
    
    这样后续修改配置会更方便。

内容的提问来源于stack exchange,提问作者Atinesh Singh

火山引擎 最新活动