Я наблюдаю странное поведение при запуске процесса с помощью сценария инициализации. Скорее всего, я делаю что-то глупое, но, возможно, кто-нибудь может сообщить мне, что может вызвать такое поведение:
[Предыстория: процесс - это моногод mongodb, работающий как сервер конфигурации (2.4), и я работаю на Debian 6. Процесс выполняется под пользователем mongodb, и я выдаю команды через SSH как пользователь без полномочий root]
sudo /etc/init.d/mongodb stop
, тогда начинается странность: я получаю mongodb apparently not running
. (Хотя процесс и pid все еще там).sudo /etc/init.d/mongodb start
теперь я получаю сообщение «сбой» и ошибку в журнале об уже используемом порту, чего и следовало ожидать, поскольку фактически уже запущен экземпляр.sudo /etc/init.d/mongodb start
Я получаю больше странностей: в консоли я получаю Starting database: mongodb failed!
(больше нет информации). Но ... теперь процесс запущен, и в журналах я не вижу ошибок, просто похоже, что процесс запустился нормально. sudo /etc/init.d/mongodb stop
Я получаю mongodb apparently not running
.Рассматриваемый сценарий Вот.
Любые идеи? Спасибо!
РЕДАКТИРОВАТЬ: Если это что-то связано с монго, вот мой mongodb.conf для сервера конфигурации:
configsvr=true
dbpath=/data/configdb
logpath=/var/log/mongodb/mongodb.log
logappend=true
port = 28222
bind_ip = a_public_ip,127.0.0.1,a_private_ip
auth = true
keyFile = /srv/mongodb/keyfile
nohttpinterface = true
fork = true
Дополнительно: я вижу Starting database: mongodb failed!
во время загрузочного экрана (но все еще есть процесс, который, по-видимому, работает нормально после загрузки).
Если на этом сервере запущено более одного экземпляра или что-то еще, что может указывать здесь другое значение:
PIDFILE=/var/run/$NAME.pid
Это вызовет проблему, которую вы видите здесь, он будет искать процесс с идентификатором, который находится в этом файле, чтобы определить, mongod
и какой PID останавливать при выключении.
Вы также должны взглянуть на разрешения для этого файла, чтобы убедиться, что процесс может получить к нему доступ и обновить его при запуске.
По сути, нам нужно иметь отдельные значения $ NAME для каждого сценария инициализации, который вы используете, чтобы избежать коллизий, и убедиться, что правильное значение PID вносится в этот файл, чтобы служба работала должным образом.
Если все выглядит хорошо, то, думаю, вы столкнулись с проблемами, описанными здесь:
https://jira.mongodb.org/browse/SERVER-7254
Вызываемый numactl (как и должно быть при установке), по-видимому, вызывает запись неверного PID в файл PID. Мы ждем отзывов об этом, поэтому, если вы можете добавить свой опыт (и установлен ли у вас numactl), мы будем признательны.