--fork
彼らがmongodのパラメータとして使用するチュートリアルを見てきました。しかし、そうしようとすると、 unknown option と表示されます--fork
。--fork
では、Windowsでmongodbを実行するにはどうすればよいですか?
6 に答える
start /b
コマンドの前に (/b - 新しいコマンド ウィンドウなしで実行することを意味します) と書くことができます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
...
--fork
実際には、Windows またはmongod
コマンドではなく、Linux コマンドです。同じことが Windows に存在するとはまったく思いません。
ここで Linux には 2 つのプリミティブがありますが、実際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 系のようなメカニズムをサポートしていません。Mongoマニュアルで説明されているように、Windows で最も近いものはサービスとして mongod を実行することです。
コマンド --fork は、Linux/Unix でのみ機能します。mongod をバックグラウンドで実行するために --fork が必要な場合は、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 を開始できません