关于systemctl服务中TYPE参数的那些事

本文记录了在Ubuntu 18.04上配置mongodb自动重启时遇到的问题,详细介绍了systemd服务中TYPE参数的重要性和使用误区。通过分析,解释了`forking`和`simple`类型的区别,并提供了正确的配置方式。当设置为`forking`时,需确保服务进程正确写入PID,而`simple`则不需要检查。文章最后列举了TYPE参数的其他取值。
摘要由CSDN通过智能技术生成

前言

最近发现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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值