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文件。

你可能感兴趣的:(mongodb,数据库)