我在教程中看到他们--fork
用作 mongod 的参数。但是当我尝试这样做时,它会显示 unknown option --fork
。那么如何--fork
在windows上使用mongodb呢?
6 回答
您可以在命令之前写入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
...
--fork
实际上是 Linux 命令而不是 Windows 或mongod
命令。我不相信 Windows 上也存在同样的情况。
Linux 在这里有两个原语,fork
但是exec
Windows 真正有的是createProcess
有效的fork
-and- exec
。
设置服务并在fork
模式下运行它是不一样的,服务更像是一个init.d
脚本,但这是目前唯一的方法。
Cygwin 可以非常缓慢地在 Windows 上模拟 fork,如下所述:Windows 与 fork() 最接近的是什么?
该--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 启用守护程序模式。这是生产和类似生产环境中的正常操作模式,但可能不适合测试。
Windows 不支持fork
类似 Unix 的机制,Windows 上最接近的等价物是将 mongod 作为服务运行,如Mongo 手册中所述。
命令 --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 作为服务启动