Подтвердить что ты не робот

Вилка монгодба в окнах

Я видел на уроках, что они используют --fork как параметр mongod. Но когда я пытаюсь сделать это, он говорит неизвестный вариант --fork. Итак, как --fork mongodb на windows?

4b9b3361

Ответ 1

--fork - это фактически команда Linux, а не команда Windows или mongod. Я не считаю, что то же самое существует в Windows.

В Linux есть два примитива: fork и exec, но в Windows действительно есть createProcess, что эффективно fork -and- exec.

Настройка службы и ее запуск в режиме fork не то же самое, служба больше похожа на init.d script, но в настоящий момент это единственный способ.

Cygwin может эмулировать fork в Windows очень медленно, как описано здесь: Какая ближайшая вещь имеет окна fork()?

Ответ 2

Вы можете написать start /b (/b - означает выполнение без нового окна cmd) перед командой mongod. Он запустит вашу команду mongod асинхронную и выведет консоль командной строки. Таким образом, имеет аналогичный эффект, например fork.

Его можно использовать в сценариях .bat, например, при запуске набора реплик:

start/b mongod --replSet m101 --logpath "1.log" --dbpath data\rs1 --port 27017 --smallfiles

start/b mongod --replSet m101 --logpath "2.log" --dbpath data\rs2 --port 27018 --smallfiles

start/b mongod --replSet m101 --logpath "3.log" --dbpath data\rs3 --port 27019 --smallfiles

...

Ответ 3

Windows не поддерживает механизм fork, такой как Unix-alikes, ближайший эквивалент Windows должен запускать mongod как услугу, как описано в руководство Mongo.

Ответ 4

Параметр --fork не предназначен для пользователей MongoDB для Windows, и вы должны выполнить эту команду mongod в другом окне:

mongod --replSet m101 --logpath "1.log" --dbpath /data/rs1 --port 27017 --smallfiles --oplogSize 64  

mongod --replSet m101 --logpath "2.log" --dbpath /data/rs2 --port 27018 --smallfiles --oplogSize 64 

mongod --replSet m101 --logpath "3.log" --dbpath /data/rs3 --port 27019 --smallfiles --oplogSize 64 

MongoDB для Unix-подобных платформ опция - fork

Включает режим демона для mongod, который запускает процесс в задний план. Это нормальный режим работы, в производстве и производственные среды, но могут быть нежелательны для тестирования.

Ответ 5

Команда --fork работает только для Linux/Unix. Если вам нужно --fork для запуска mongod в фоновом режиме, в Windows, которое может быть достигнуто установкой mongod в качестве службы.

При использовании опции mongod --install для установки службы mongodb необходимы путь -dbpath и -logpath. В моем случае для установки службы мне нужно использовать консоль администратора.

Например:

mongod --dbpath=C:\mongodb\data --logpath=C:\mongodb\data\log\service.log --install

Затем просмотрите файл журнала, чтобы увидеть имя службы и другую информацию, включая любые возможные ошибки.

2014-06-25T18:21:14.245-0700 Trying to install Windows service 'MongoDB'
2014-06-25T18:21:14.253-0700 Service 'MongoDB' (MongoDB) installed with command line 'C:\mongodb-win32-x86_64-2008plus-2.6.1\bin\mongod.exe --dbpath=C:\mongodb\data --logpath=C:\mongodb\data\log\service.log --service'
2014-06-25T18:21:14.254-0700 Service can be started from the command line with 'net start MongoDB'

Имя службы по умолчанию - "MongoDB". Имя службы можно назвать с параметром --serviceName при установке службы.

Затем запустите службу с использованием сети.

net use MongoDB

Обратите внимание, что при установке службы лучше использовать абсолютный путь для -dbpath и -log. В противном случае у службы может возникнуть проблема. Подробности обсуждались здесь: Не удается запустить MongoDB как услугу