Mongod通过systemctl启动自动被pid:1以signal 15杀掉

Mongod通过systemctl启动自动被pid:1以signal 15杀掉

解决办法:

去掉mongo.conf配置文件中的fork = true。(mongo.conf默认在/etc/mongo.conf)
或者
在/usr/lib/systemd/system/mongod.service配置中

[service]下加入
Type=fork
PIDFile=/var/run/mongodb/mongod.pid

然后再mongo.conf配置文件中加入

processManagement:
  fork: true # 是否后台启动
  pidFilePath: "/var/run/mongodb/mongod.pid" # 用于systemctl启动的pid文件

原因:

1.systemctl默认以simple模式启动进程该模式下会跟踪服务主进程,如果我们mongod以fork方式启动,主进程退出时,systemctl会认为服务结束,杀掉这个主进程的所有子进程。所以我们不以fork方式启动mongod即可。
2.设置systemd启动mongod为fork模式,这样主进程退出时会把子进程pid写入到我们配置的pid文件中,这样systemd就可以根据pid文件正确跟踪子进程。首先在mongod的配置中配置pid文件路径,使其写入到这个路径,然后再systemd的mongod.service中配置pid文件路径,以便systemd读取pid文件。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值