Ubuntu 18.04实例中创建第二个MongoDB服务失败求助
解决mongodb2.service找不到的问题
你遇到的核心问题是系统的服务管理机制没识别到你复制的init.d脚本——现在绝大多数Linux发行版都用systemd作为默认初始化系统,直接复制旧的init.d脚本无法被service命令正确识别。下面分两种场景给出解决方案:
方案一:修复sysvinit风格的init.d脚本(适配依赖旧初始化系统的环境)
如果你坚持用init.d脚本管理服务,需要完成以下步骤让系统识别这个新服务:
- 给新的服务脚本添加执行权限:
sudo chmod +x /etc/init.d/mongodb2 - 更新系统服务缓存:
- 对于Debian/Ubuntu系列:
sudo update-rc.d mongodb2 defaults - 对于RHEL/CentOS系列:
sudo chkconfig --add mongodb2
- 对于Debian/Ubuntu系列:
- 现在再尝试检查服务状态:
sudo service mongodb2 status
方案二:使用systemd服务文件(推荐,主流系统通用)
现在更推荐用systemd服务单元来管理MongoDB实例,步骤如下:
- 创建systemd服务文件:
sudo nano /etc/systemd/system/mongodb2.service - 将以下内容写入文件(注意根据你的实际环境调整路径,比如
mongod的安装位置、PID文件路径等):[Unit] Description=MongoDB Database Server (Instance 2) Documentation=man:mongod(1) After=network.target [Service] User=mongodb Group=mongodb ExecStart=/usr/bin/mongod --config /etc/mongodb2.conf # 如果你的mongodb2.conf里指定了pidfilepath,这里对应修改即可 PIDFile=/var/run/mongodb/mongodb2.pid Restart=always # 自动创建并设置必要目录的权限 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb ExecStartPre=/usr/bin/chown -R mongodb:mongodb /var/run/mongodb /var/lib/mongodb2 /var/log/mongodb2 [Install] WantedBy=multi-user.target - 保存退出后,重新加载systemd配置:
sudo systemctl daemon-reload - 启动服务并设置开机自启:
sudo systemctl start mongodb2 sudo systemctl enable mongodb2 - 检查服务状态:
sudo systemctl status mongodb2
额外必查项
- 确保数据目录和日志目录的权限正确,MongoDB用户需要读写权限:
sudo chown -R mongodb:mongodb /var/lib/mongodb2 /var/log/mongodb2 - 验证
mongodb2.conf中的配置是否正确,比如端口、dbpath、logpath有没有拼写错误,避免和原MongoDB实例的配置冲突。
内容的提问来源于stack exchange,提问作者krishna rao gadde
相关产品推荐
相关产品推荐

