Остановка unifi controller 5.6.29 (и, вероятно, всех других версий) на Linux Debian с помощью: service unifi stop или /etc/init.d/unifi stop вызывает следующее (в файле server.log):
[2018-01-23 20:07:14,920] <db-server> WARN system - процесс прерван: bin/mongod
[2018-01-23 20:07:14,920] <db-server> INFO db - DbServer остановлен
[2018-01-23 20:07:14,921] <db-server> WARN db - DbServer не завершился корректно и требует восстановления при следующем запуске
Заранее спасибо за помощь!
Я нашёл эти ошибки в оригинальном файле /etc/init.d/unifi:
ОШИБКА 1:
MONGOLOCK="${DATAPATH}/db/mongod.lock"
должно быть:
MONGOLOCK="${DATALINK}/db/mongod.lock" # потому что DATAPATH не определён
ОШИБКА 2:
# завершение mongod
# баг: был -f, изменено на -e, потому что mongod — не обычный файл
if [ -e ${MONGOLOCK} ]; then
mongo localhost:${MONGOPORT} --eval "db.getSiblingDB('admin').shutdownServer()" >/dev/null 2>&1
fi
Код из ОШИБКИ 2 должен быть размещён перед:
"${JSVC} ${JSVC_OPTS} -stop ${MAINCLASS} stop"
потому что mongodb — дочерний процесс этого, а не после него, как сейчас.
[2018-01-23 20:07:14,920] <db-server> WARN system - процесс прерван: bin/mongod
[2018-01-23 20:07:14,920] <db-server> INFO db - DbServer остановлен
[2018-01-23 20:07:14,921] <db-server> WARN db - DbServer не завершился корректно и требует восстановления при следующем запуске
Заранее спасибо за помощь!
Я нашёл эти ошибки в оригинальном файле /etc/init.d/unifi:
ОШИБКА 1:
MONGOLOCK="${DATAPATH}/db/mongod.lock"
должно быть:
MONGOLOCK="${DATALINK}/db/mongod.lock" # потому что DATAPATH не определён
ОШИБКА 2:
# завершение mongod
# баг: был -f, изменено на -e, потому что mongod — не обычный файл
if [ -e ${MONGOLOCK} ]; then
mongo localhost:${MONGOPORT} --eval "db.getSiblingDB('admin').shutdownServer()" >/dev/null 2>&1
fi
Код из ОШИБКИ 2 должен быть размещён перед:
"${JSVC} ${JSVC_OPTS} -stop ${MAINCLASS} stop"
потому что mongodb — дочерний процесс этого, а не после него, как сейчас.
