当我使用守护进程服务启动 mongodb 时,大约 2 分钟后 MongoDB 总会收到系统(CentOS7.3)的终止信号:
日志:[signalProcessingThread] 收到信号 15(已终止)
但是当我在 shell 中手动运行它时: /data/mongo/bin/3.4/mongod -f /data/mongo/config/uxdb_27019.conf --fork ,它运行正常。
我的 mongodb 守护进程服务:/usr/lib/systemd/system/mongod.service
[Unit]
Description=mongodb
After=network.target·
After=syslog.target
[Service]|
Type=forking
User=mongo
ExecStart=/data/mongo/bin/3.4/mongod -f /data/mongo/config/uxdb_27019.conf
PrivateTmp=true
PIDFile=/data/mongo/pid/mongod_27019.pid
LimitFSIZE=infinity
LimitCPU=infinity
LimitAS=infinity
LimitNOFILE=32000
LimitNPROC=32000
[Install]
WantedBy=multi-user.target
哪个过程是终止 mongod 服务?
2017-08-08T14:57:55.638+0800 I NETWORK [conn12] received client metadata from 10.10.9.51:56714 conn12: { driver: { name: "mongo-java-driver", version: "3T_5.0.0-74-g1de6631-dirty" }, os: { type: "Windows", name: "Windows Server 2012 R2", architecture: "amd64", version: "6.3" }, platform: "Java/Oracle Corporation/1.8.0_121-b13" }
2017-08-08T14:59:14.169+0800 I CONTROL [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
2017-08-08T14:59:14.169+0800 I NETWORK [signalProcessingThread] shutdown: going to close listening sockets...
答案1
请检查PID文件在你的mongod.服务:
[服务]
...已删除...
类型=分叉
PID文件=/数据/mongo/pid/mongod_27019.pid
...已删除...
必须与pid文件路径在/etc/mongod.conf:
流程管理:
叉:真
pid文件路径:/data/mongo/pid/mongod_27019.pid
希望这可以帮助你的问题。
答案2
我通过以下方式解决了这个问题:
修改守护进程:mongod.service:从 forking 改为 oneshot
[Service] Type=oneshot
修改 config/Mongodb.conf:注释掉以下行:
#processManagement: #fork: true
但我不知道为什么,但它现在运行良好。