24

我在教程中看到他们--fork用作 mongod 的参数。但是当我尝试这样做时,它会显示 unknown option --fork。那么如何--fork在windows上使用mongodb呢?

4

6 回答 6

23

您可以在命令之前写入start /b(/b - 表示在没有新 cmd 窗口的情况下执行)mongod。它将mongod异步启动您的命令并释放控制台提示符。因此,具有类似的效果,如fork.

它可以在 .bat 脚本中使用,例如,启动副本集:

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

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

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

...

于 2013-09-07T21:13:22.320 回答
13

--fork实际上是 Linux 命令而不是 Windows 或mongod命令。我不相信 Windows 上也存在同样的情况。

Linux 在这里有两个原语,fork但是execWindows 真正有的是createProcess有效的fork-and- exec

设置服务并在fork模式下运行它是不一样的,服务更像是一个init.d脚本,但这是目前唯一的方法。

Cygwin 可以非常缓慢地在 Windows 上模拟 fork,如下所述:Windows 与 fork() 最接近的是什么?

于 2013-03-03T11:20:16.183 回答
3

--fork选项不适用于 MongoDB for 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 

用于类 Unix 平台的 MongoDB 选项--fork

为将进程运行到后台的 mongod 启用守护程序模式。这是生产和类似生产环境中的正常操作模式,但可能不适合测试。

于 2015-04-27T15:49:01.050 回答
2

Windows 不支持fork类似 Unix 的机制,Windows 上最接近的等价物是将 mongod 作为服务运行,如Mongo 手册中所述

于 2013-03-03T11:14:39.253 回答
1

Windows中,没有fork命令起作用,因为可以使用以下命令将 mongodb 用作服务:启动服务

net start mongodb

停止服务:打开 cmd 并使用以下命令

net stop mongodb

在此处输入图像描述

于 2020-04-17T07:10:06.160 回答
0

命令 --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 启动服务。

net use MongoDB

注意安装服务时,--dbpath 和--log 最好使用绝对路径。否则服务可能无法启动。此处讨论了详细信息:无法将 MongoDB 作为服务启动

于 2014-06-26T01:35:40.183 回答