Назад | Перейти на главную страницу

mongoDB - Ошибка запуска / завершения работы службы Linux (возможно нечистое завершение работы)

Администрирование Linux - не мое, поэтому я здесь немного надумал.

Системная информация:

/ proc / version -> Linux версии 2.6.18-028stab091.2

/ и т.д. / debian_version -> 5.0.8

Каждый раз, когда сервер выключается и перезапускается, MongoDB не запускается. Похоже, mongod не закрывается чисто. Файл .lock все еще присутствует, и я не могу открыть его вручную, пока не удалю его и не запустил --repair. Если я посмотрю в файл журнала mongod, я не вижу последовательности выключения, она просто переходит от запроса к запуску.

Wed Jul 13 17:57:49 [conn1] update ps.profiles  query: { blah blah blah } 224ms
Thu Jul 14 07:07:51 MongoDB starting : pid=1167 port=27017 dbpath=/srv/db/ProfileServer 64-bit

Я вижу, что есть скрипты для обработки выключения и перезапуска:

$ ls -l /etc/rc0.d/*mongodb
lrwxrwxrwx 1 root root 17 Feb 17 09:46 /etc/rc0.d/K20mongodb -> ../init.d/mongodb
$ ls -l /etc/rc2.d/*mongodb
lrwxrwxrwx 1 root root 17 Feb 17 09:46 /etc/rc2.d/S20mongodb -> ../init.d/mongodb
$ ls -l /etc/rc6.d/*mongodb
lrwxrwxrwx 1 root root 17 Feb 17 09:46 /etc/rc6.d/K20mongodb -> ../init.d/mongodb

Я знаю, что скрипты работают. Бегом

sudo /etc/init.d/mongodb stop
sudo /etc/init.d/mongodb start

Я вижу в журналах

... various other shutdown messages ...
Thu Jul 14 08:42:06 [interruptThread] shutdown: removing fs lock...
Thu Jul 14 08:42:06 dbexit: really exiting now
Thu Jul 14 08:42:12 MongoDB starting : pid=3184 port=27017 dbpath=/srv/db/ProfileServer 64-bit

Я делаю что-то явно не так? Есть ли какой-нибудь файл журнала, который позволит мне отслеживать изменение уровня выполнения?

Я успешно выполнил эту работу, используя упакованные версии из репозиториев 10gen:

http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages http://www.mongodb.org/display/DOCS/CentOS+and+Fedora+Packages

Я подозреваю, что проблема здесь в том, как происходит завершение работы и как долго он ждет, чтобы убить процесс mongo. Если вы не хотите утруждать себя установкой пакета, просто чтобы посмотреть некоторые сценарии инициализации, зайдите на github и проверьте исходный код (одно из преимуществ БД с открытым исходным кодом :))

https://github.com/mongodb/mongo/blob/master/rpm/init.d-mongod

Сравните и сопоставьте со своими собственными сценариями инициализации и настройте, чтобы увидеть, где что-то могло пойти не так.