2013-03-03 20 views
20

Ho visto su tutorial che usano --fork come parametro di mongod. Ma quando provo a farlo, dice l'opzione sconosciuta --fork. Quindi, come --fork mongodb su Windows?fork mongodb in windows

+1

sì --fork è una cosa di Linux, non credo che ci sia una per Windows – Sammaye

risposta

11

--fork è in realtà un comando Linux non un comando Windows o mongod. Non credo che lo stesso esista su Windows.

Linux ha due primitive qui, fork e exec tuttavia Windows è veramente solo createProcess che è effettivamente fork -e- exec.

Impostare un servizio ed eseguirlo nella modalità fork non è la stessa cosa, un servizio è più simile a uno script init.d, ma attualmente è l'unico modo veramente.

Cygwin può emulare forchetta su Windows, molto lentamente, come descritto qui: What is the closest thing windows has to fork()?

+0

possibile utilizzare il comando di avvio in modo che inizia nella sua sul prompt dei comandi – tgkprog

2

Windows non supporta il meccanismo fork come Unix-alikes, l'equivalente più simile su Windows sarebbe quello di eseguire mongod come servizio, come spiegato in the Mongo manual.

21

È possibile scrivere start /b (/ b - mezzi eseguono senza nuova finestra cmd) prima mongod comando. Avvierà il comando mongod in modo asincrono e verrà visualizzato il prompt della console. Quindi, ha un effetto simile, come fork.

Può essere utilizzato negli script bat, per esempio, a partire replica set:

start/b mongod --replSet M101 --logpath "1.log" --dbpath dati \ RS1 - port 27017 --smallfiles dati

start/b mongod --replSet M101 --logpath "2.log" --dbpath \ RS2 --port 27018 --smallfiles

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

...

+1

come è possibile poi fermarsi ciascuno o uno qualsiasi dei mongods ? – sdfor

+3

mongo localhost: 27017 --eval "db.adminCommand ({shutdown: 1})" mongo localhost: 27018 --eval "db.adminCommand ({shutdown: 1})" mongo localhost: 27019 --eval "db .adminCommand ({shutdown: 1}) " – Hersh

+0

Può anche usare pskill, il task manager o il riavvio :-) – tgkprog

0

Il comando --fork funziona solo per Linux/Unix. Se hai bisogno di --fork per eseguire mongod in background, su Windows che può essere ottenuto installando mongod come servizio.

Quando si utilizza l'opzione mongod --install per installare il servizio mongodb, sono richiesti --dbpath e --logpath. Nel mio caso, ho bisogno di utilizzare la console di comando dell'amministratore per installare il servizio.

Ad esempio:

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

quindi individuare il file di log per vedere il nome del servizio e altre informazioni comprese eventuali errori.

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' 

Il nome del servizio predefinito è "MongoDB". È possibile assegnare un nome al servizio con l'opzione --serviceName quando si installa il servizio.

Quindi avviare il servizio con uso di rete.

net use MongoDB 

Nota quando si installa il servizio, è meglio utilizzare il percorso assoluto per --dbpath e --log. In caso contrario, il servizio potrebbe avere un problema da avviare. I particolari sono stati discussi qui: Cannot start MongoDB as a service

2

L'opzione --fork non è per MongoDB per gli utenti Windows ed è necessario eseguire questo ogni comando mongod in una finestra diversa:

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 per Unix-like piattaforme opzione --fork

Consente di utilizzare una modalità demone per mongod che esegue il processo al sfondo. Questa è la modalità di funzionamento normale, in produzione e negli ambienti di produzione simili a , ma potrebbe non essere consigliabile per il test.