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




