Centos
MongoDB:為什麼 mongod 服務關閉?
當我使用守護程序服務啟動 mongodb 時,大約 2 分鐘後,系統(CentOS7.3)總是收到 MongoDB 的終止信號:
日誌:
$$ 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...
我通過以下方式解決了這個問題:
- 修改守護程序:mongod.service: 從 forking 到 oneshot
[Service] Type=oneshot
- 修改 config/Mongodb.conf:備註以下行:
#processManagement: #fork: true
但我不知道為什麼,但現在效果很好。
請在您的mongod.service中檢查 PIDFile 的****值:
$$ Service $$ …已刪除…
類型=分叉
PIDFile=/data/mongo/pid/mongod_27019.pid
…已刪除…
必須與/etc/mongod.conf中的pidFilePath具有相同的值:
流程管理:
叉:真
pidFilePath:/data/mongo/pid/mongod_27019.pid
希望這可以幫助您解決問題。