2013-03-03 26 views
20

Tôi đã thấy trên các hướng dẫn mà họ sử dụng --fork làm thông số của mongod. Nhưng khi tôi cố gắng làm như vậy, nó nói tùy chọn không rõ --fork. Vậy làm thế nào để --fork mongodb trên cửa sổ?ngã ba mongodb trong các cửa sổ

+1

yea --fork là một điều linux, tôi không nghĩ rằng có một cửa sổ cho – Sammaye

Trả lời

11

--fork thực sự là lệnh Linux không phải là lệnh Windows hoặc mongod. Tôi không tin rằng cùng tồn tại trên Windows cả.

Linux có hai nguyên thủy ở đây, forkexec tuy nhiên chỉ dành cho Windows thực sự có createProcess đó là một cách hiệu quả fork -and- exec.

Thiết lập dịch vụ và chạy dịch vụ ở chế độ fork không giống nhau, dịch vụ giống như một tập lệnh init.d tuy nhiên đó thực sự là cách duy nhất thực sự.

Cygwin có thể bắt chước ngã ba trên Windows, rất chậm, như mô tả ở đây: What is the closest thing windows has to fork()?

+0

có thể sử dụng lệnh start để nó bắt đầu ở trên command prompt – tgkprog

2

Windows không hỗ trợ cơ chế fork như Unix-alikes, tương đương gần nhất trên Windows sẽ chạy mongod như một dịch vụ, như được giải thích trong the Mongo manual.

21

Bạn có thể viết start /b (/ b - phương tiện thực thi mà không cửa sổ cmd mới) trước mongod lệnh. Nó sẽ bắt đầu lệnh mongod lệnh không đồng bộ và bảng điều khiển phát hành. Vì vậy, có hiệu ứng tương tự, như fork.

Nó có thể được sử dụng trong các kịch bản .bat, ví dụ, bắt đầu từ bản sao thiết lập:

start/b mongod --replSet M101 --logpath "1.log" --dbpath data \ RS1 - cảng 27.017 --smallfiles

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

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

...

+1

cách bạn sau đó sẽ dừng lại mỗi hoặc bất kỳ các 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

Cũng có thể sử dụng lệnh pskill, trình quản lý tác vụ hoặc khởi động lại :-) – tgkprog

0

Lệnh - chỉ hoạt động với Linux/Unix. Nếu bạn cần --fork để chạy mongod trong nền, trên Windows có thể đạt được bằng cách cài đặt mongod như một dịch vụ.

Khi sử dụng mongod --cài đặt tùy chọn để cài đặt dịch vụ mongodb, thì --dbpath và --logpath là bắt buộc. Trong trường hợp của tôi, tôi cần sử dụng giao diện điều khiển lệnh của quản trị viên để cài đặt dịch vụ.

Ví dụ:

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

Sau đó duyệt các tập tin log để xem tên dịch vụ và các thông tin khác bao gồm bất kỳ lỗi nào có thể.

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' 

Tên dịch vụ mặc định là "MongoDB". Bạn có thể đặt tên cho tên dịch vụ bằng tùy chọn --serviceName khi cài đặt dịch vụ.

Sau đó, bắt đầu dịch vụ với sử dụng mạng.

net use MongoDB 

Lưu ý khi cài đặt dịch vụ, tốt hơn nên sử dụng đường dẫn tuyệt đối cho --dbpath và --log. Nếu không, dịch vụ có thể có vấn đề để bắt đầu. Thông tin chi tiết đã được thảo luận ở đây: Cannot start MongoDB as a service

2

Tùy chọn --fork không phải dành cho MongoDB cho người dùng Windows và bạn phải thực hiện điều này mỗi lệnh mongod trong cửa sổ khác nhau:

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 cho Unix-like nền tảng tùy chọn --fork

Bật chế độ daemon cho mongod chạy quá trình đến nền. Đây là chế độ hoạt động bình thường, trong sản xuất và môi trường giống như sản xuất, nhưng có thể không được mong muốn để thử nghiệm.

Các vấn đề liên quan