Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
windows中的mongodb fork_Mongodb - Fatal编程技术网

windows中的mongodb fork

windows中的mongodb fork,mongodb,Mongodb,我在教程中看到,他们使用--fork作为mongod的参数。但当我尝试这样做时,它会显示未知选项--fork。因此,如何在windows上运行mongodb?windows不支持Unix alikes那样的fork机制,windows上最接近的等效机制是将mongod作为服务运行,如中所述。

我在教程中看到,他们使用
--fork
作为mongod的参数。但当我尝试这样做时,它会显示未知选项
--fork
。因此,如何在windows上运行mongodb?

windows不支持Unix alikes那样的
fork
机制,windows上最接近的等效机制是将mongod作为服务运行,如中所述。

实际上是一个Linux命令,而不是windows或
mongod
命令。我认为Windows上根本不存在同样的情况

Linux在这里有两个原语,
fork
exec
,但是Windows实际上只有
createProcess
,这实际上是
fork
-和-
exec

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


Cygwin可以非常缓慢地在Windows上模拟fork,如下所述:

您可以在
mongod
命令之前编写
start/b
(/b-表示在没有新cmd窗口的情况下执行)。它将异步启动
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

命令--fork仅适用于Linux/Unix。如果需要--fork在Windows上后台运行mongod,可以通过将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使用绝对路径。否则,该服务可能无法启动。详细信息已在此处讨论:

--fork
选项不适用于Windows用户的MongoDB
,您必须在不同的窗口中执行每个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启用守护程序模式,该模式将进程运行到 背景。这是生产和销售中的正常操作模式 类似于生产环境,但可能不适合测试


窗口中没有运行fork命令,因为可以使用以下命令将mongodb用作服务: 开始服务

net start mongodb
要停止服务:打开cmd并使用下面的命令

net stop mongodb

是的——fork是linux的东西,我不认为Windows有这样一个工具,那么您如何停止每个或任何Mongod?mongo localhost:27017--eval“db.adminCommand({shutdown:1})”mongo localhost:27018--eval“db.adminCommand({shutdown:1})”mongo localhost:27019--eval“db.adminCommand({shutdown:1})”不确定您使用的是什么版本的windows和mongodb,但这对win 7不起作用,mongodb V4可以使用start命令,以便在其on命令提示符下启动