Администрирование 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
Сравните и сопоставьте со своими собственными сценариями инициализации и настройте, чтобы увидеть, где что-то могло пойти не так.