我使用以下命令在Ubuntu服务器的后台运行MongoDB:
mongod --fork --logpath /var/log/mongod.log
但有时候数据库崩溃而我必须手动重启,我的问题是如果数据库崩溃会如何自动重启?
我尝试添加/etc/init/mongodb.conf
:
respawn
respawn limit 10 90
但是,如果我杀死monogodb进程,它还没有自动启动。有什么问题?
由于
答案 0 :(得分:0)
根据您使用的操作系统,您应该使用为https://docs.mongodb.com/manual/administration/install-on-linux/分发的软件包,然后使用提供的启动脚本。
对于ubuntu,您需要创建systemd文件
如果您从我之前提供的链接安装.deb软件包,则可以通过执行以下操作来创建systemd脚本。
使用内容
创建/etc/systemd/system/mongodb.servicepackage main
import (
"encoding/json"
"fmt"
)
type myMapping map[string]string
func (mm myMapping) UnmarshalJSON(b []byte) error {
var temp []map[string]string
if err := json.Unmarshal(b, &temp); err != nil {
return err
}
for _, m := range temp {
for k, v := range m {
mm[k] = v
}
}
return nil
}
func main() {
data := []byte(`
[
{"abc's": "n;05881364"},
{"abcoulomb": "n;13658345"},
{"abcs": "n;05881364"}
]`)
resultingMap := myMapping{}
if err := json.Unmarshal(data, &resultingMap); err != nil {
panic(err)
}
fmt.Println(resultingMap)
}
然后跑
systemctl启动mongodb
systemctl启用mongodb
然后,只要你想开始,就可以使用systemctl restart mongodb。