Когда я использую службу демона для запуска mongodb, MongoDB всегда получает сигнал уничтожения системой (CentOS7.3) примерно через 2 минуты:
Журнал: [signalProcessingThread] получил сигнал 15 (завершен)
Но когда я запускаю его вручную в оболочке: /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: с разветвления на oneshot
[Service]
Type=oneshot
Измените config / Mongodb.conf: обратите внимание на следующую строку:
#processManagement:
#fork: true
Но я не знаю почему, но сейчас он работает хорошо.
Пожалуйста, проверьте валидность PIDFile в твоем mongod.service :
[Обслуживание]
... удалено ...
Тип = разветвление
PIDFile = / data / mongo / pid / mongod_27019.pid
... удалено ...
Должен иметь то же значение с pidFilePath в /etc/mongod.conf:
управление процессом:
вилка: правда
pidFilePath: /data/mongo/pid/mongod_27019.pid
Надеюсь, это поможет решить вашу проблему.