То, что я хочу достичь, это иметь /etc/init.d script, который более надежно запускает Mongodb, даже если он сильно опустился - он должен попытаться авторемонтировать, если система находится в заблокированном состояние.
Да, я мог бы script сам, но я думаю, что кто-то там, должно быть, уже сделал это.
Я заметил, что после того, как сервер опустился, Mongodb находится в состоянии, когда он не перезапускается через /etc/init.d/mongod script. Очевидно, файл блокировки должен быть удален, и его необходимо запустить с параметром -repair и сначала исправить -dbpath, прежде чем он сможет быть успешно перезапущен. В некоторых случаях также необходимо изменить права собственности на db файлы на пользователя, который запускает mongodb. Еще одна проблема заключается в том, что стандарт /etc/init.d/mongod script не сообщает об ошибке в этой ситуации, но довольно радостно и неправильно возвращается с статусом "ОК", сообщая, что Mongod был запущен, хотя он не был.
$ sudo /etc/init.d/mongod start
Starting mongod: forked process: 9220
all output going to: /data/mongo/log/mongod.log
[ OK ]
$ sudo /etc/init.d/mongod status
mongod dead but subsys locked
ОС - это CentOS или Fedora.
Кто-нибудь изменил скрипты /etc/init.d или указатель на такие скрипты, которые автоматически пытаются восстановить в этой ситуации? Или есть еще один инструмент, который функционирует как сторожевая собака для Mongod
Любые мнения о том, почему может быть плохой идеей попытаться автоматически восстановить mongodb?
$ sudo /etc/init.d/mongod status
mongod dead but subsys locked
$ sudo ls -l /var/lib/mongo/mongod.lock
-rw-r--r--. 1 mongod mongod 5 Nov 19 11:52 /var/lib/mongo/mongod.lock
$ sudo tail -50 /data/mongo/log/mongod.log
**************
old lock file: /data/mongo/db/mongod.lock. probably means unclean shutdown
recommend removing file and running --repair
see: http://dochub.mongodb.org/core/repair for more information
*************
Sat Nov 19 11:55:44 exception in initAndListen std::exception: old lock file, terminating
Sat Nov 19 11:55:44 dbexit:
Sat Nov 19 11:55:44 shutdown: going to close listening sockets...
Sat Nov 19 11:55:44 shutdown: going to flush oplog...
Sat Nov 19 11:55:44 shutdown: going to close sockets...
Sat Nov 19 11:55:44 shutdown: waiting for fs preallocator...
Sat Nov 19 11:55:44 shutdown: closing all files...
Sat Nov 19 11:55:44 closeAllFiles() finished
Sat Nov 19 11:55:44 dbexit: really exiting now