前言
最近发现mongodb总是莫名其妙的挂掉,一边查找原因,一边想着如果能自动重启就好了,于是mongodb的自动重启这件事就提上日程了。本来以为最多半小时的事,没想到还是遇到了一些奇妙的问题,为了找原因花费了不少时间。在这里记录一下,以便其他同学避免踩坑。
踩坑历程再现
操作系统:Ubuntu 18.04
建立了一个/lib/systemd/system/mongo.service文件,在文件上写上对应内容
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/dev/usr/mongodb/bin/mongod --dbpath /dev/usr/mongodb/data
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/dev/usr/mongodb/bin/mongod --shutdown --dbpath /dev/usr/mongodb/data
PrivateTmp=true
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
关键就是
Restart=always
RestartSec=5
这两句话,能够在mongodb挂掉之后自动重启。
然后使用
systemctl daemon-reload
systemctl start mongo.service
启动mongodb服务,发现半天没有反应,只能ctrl-c结束掉,感觉不太对劲。
查了一下有数据,本来以为万事大吉,但使用journalctl -xe没有看到错误,但systemctl status mongo.sercice查了一下看输出却显示没有进入running一直是start的状态
● mongo-server.service - mongodb
Loaded: loaded (/lib/systemd/system/mongo-server.service; enabled; vendor preset: enabled)
Active: activating (start) since Fri 2021-02-19 14:37:13 CST; 1min 21s ago
Process: 20076 ExecStop