Làm cách nào để khởi động máy chủ MongoDB trên hệ thống bắt đầu?


86

Tôi phải khởi động máy chủ MongoDB của mình mỗi khi hệ thống khởi động lại. Làm cách nào để định cấu hình nó để bắt đầu với HĐH của tôi? Tôi đang dùng Ubuntu 11.04.


1
Tôi tự hỏi tại sao không ai khuyên bạn nên sử dụng upstart ở đây.
Tom

Câu trả lời:


133

Tôi đã có "vấn đề" tương tự trên Debian jessie và giải pháp đơn giản của tôi là:

systemctl enable mongod.service

Tôi nghĩ trong Ubuntu cũng vậy.

-- BIÊN TẬP --

Theo các bình luận, nó cũng hoạt động trên Ubuntu. Trên Ubuntu 18.04 LTS dường như là giải pháp này:

systemctl enable mongodb.service

Cảm ơn @Adam. Có lẽ họ đã thay đổi tên của dịch vụ


10
Làm việc cho tôi vàoUbuntu Mate 16.04.2 LTS
Muhammad Gelbana

2
Đáng tiếc không có thông tin trong tài liệu chính thức về việc bắt đầu dịch vụ.
UpTheCux

2
có thể cần phải (sudo) systemctl start mongodbắt đầu dịch vụ mongd
Jeff Xiao

2
Cũng hoạt động trên Ubuntu 18.04 LTS
89n3ur0n

1
Chỉ hoạt động với tôi nếu tôi đổi mongod.servicesang mongodb.serviceUbuntu 18.04 LTS - lạ không?
Adam

37

Nếu bạn cài đặt MongoDB bằng Công cụ đóng gói nâng cao (apt) thì nó sẽ cấu hình các tập lệnh khởi động của bạn để tự động chạy Mongo khi hệ thống khởi động.

Các bước như sau, trước tiên hãy cấu hình apt để có thể tải xuống gói Mongo:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo nano /etc/apt/sources.list

Thêm dòng này vào nguồn.list sau đó lưu:

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Sau đó tải xuống và cài đặt Mongo với tiện ích apt-get :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mongodb-10gen

Nếu bạn muốn thực hiện bất kỳ thay đổi nào đối với cấu hình, hãy chỉnh sửa mongodb.conf của bạn và khởi động lại: 

sudo nano /etc/mongodb.conf
sudo service mongod restart

5
Nếu sau này bạn muốn thay đổi nó để không tự động khởi động MongoDB khi khởi động, hãy chỉnh sửa /etc/init/mongodb.conf.
kynan

11

Kiểm soát tất cả các liên kết dịch vụ init.d nên được thực hiện bằng công cụ update-rc.d

tức là để bật daemon mongod trong runlevels mặc định (tức là bật nó khi khởi động):

update-rc.d mongodb defaults

Xem https://help.ubfox.com/community/UbfoxBootupHowto để biết thêm thông tin. Liên kết này cho bạn biết mọi thứ bạn muốn biết về cách đặt chương trình khi khởi động.


2
Bản phân phối MongoDB 10gen không sử dụng tập lệnh init kiểu System-V, bạn cần chỉnh sửa /etc/init/mongodb.conf.
kynan

tôi có cần phải làm điều này?
tofutim

5

Nếu bạn đã cài đặt Phiên bản cộng đồng MongoDB (đây là cách được đề xuất vì nó nhận được các bản cập nhật thường xuyên hơn gói được phân phối trong kho gói Ubuntu), bạn định cấu hình hành vi bắt đầu / dừngmongod thông qua tập lệnh init /etc/init/mongod.conf khởi động, mặc định để khởi động trình nền tự động khởi động

start on runlevel [2345]
stop on runlevel [06]

Nếu bạn không muốn nó tự động bắt đầu, hãy thay thế 2 dòng đó bằng

stop on runlevel [023456]

Điều này sẽ khởi động máy chủ trước khi bất cứ ai đăng nhập vào hệ thống?
Hội chợ Gabriel

@GabrielFair Có
kynan

5

Tôi đang sử dụng crontab cho Ubuntu. Nó hoạt động tốt. Để có thể chỉnh sửa tập tin

Sudo crontab –e 

Thêm dòng này vào tập tin

@reboot sudo service mongod start &

Tiếng thở dài "&" ở cuối giúp nó hoạt động tốt.

Ctrl+ xđể thoát, nhấn "Y" một lần được nhắc. Và giữ tên tệp là "crontab".


3

Nếu bạn có Ubuntu 16.04 LTS, bạn có thể kích hoạt mongo để bắt đầu khởi động gõ cái này trong bảng điều khiển của bạn:
sudo systemctl enable mongod
Tôi đã sử dụng phương pháp này với MongoDB Community Edition 3.6 và nó hoạt động. Khởi động lại máy của bạn và kiểm tra nếu mongo đang chạy gõ:
sudo service mongod status


3

Bạn có thể sử dụng lệnh systemctl để kích hoạt dịch vụ mongo của bạn khi chạy khi khởi động hệ thống.

Tạo một dịch vụ sao cho

sudo nano /etc/systemd/system/mongodb.service

Đặt nội dung trong tập tin

[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target

[Service]
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongodb
Group=mongodb
StandardOutput=syslog
StandardError=syslog

sau đó bạn sẽ có thể sử dụng các lệnh dịch vụ như

sudo service mongod start|stop|restart

và sau đó nếu bạn muốn tạo nó khi khởi động máy, bạn có thể tạo tệp mongod trong /etc/init.d/


1

chkconfig --levels 235 mongod on?

mongodb là tên dịch vụ của bạn


2
Phân phối MongoDB 10gen theo mặc định không sử dụng các tập lệnh init kiểu System-V (mặc dù được cung cấp), /etc/init/mongodb.confthay vào đó hãy chỉnh sửa .
kynan

@kynan Chỉnh sửa nó thế nào? Tôi phải thay đổi / thêm vào tập tin mongod.conf bằng cách nào?
Kieveli

@Kieveli: xem câu trả lời này
kynan

1

Tôi đã liên tục sử dụng bài đăng này như một điểm khởi đầu để có được một giàn shending mới và chạy. Nó bao gồm một phần về cấu hình khởi động mà tôi cũng đã sử dụng.

http://joslynesser.com/blog/archives/2010/09/11/mongodb-shending-guide-server-setup-on-ub Ubuntu-ec2 /


1
Xin vui lòng không đăng "chỉ liên kết bên ngoài". Có thể là liên kết bên ngoài có thể đi xuống trong tương lai và câu trả lời này sau đó sẽ không đầy đủ. Ngoài liên kết, xin vui lòng gửi phần có liên quan của bài viết ở đây: vd. đăng phần hiển thị "Cách khởi động máy chủ MongoDB khi khởi động hệ thống?" sử dụng mới bắt đầu.
gian lận

1

Nếu bạn cài đặt MongoDB apt-getnhư được mô tả trong hướng dẫn cài đặt MongoDB Ubuntu , nó sẽ đi kèm với tập lệnh khởi động cơ bản và tệp cấu hình. (rất nên sử dụng tập tin cấu hình)

Bạn cũng có thể xem ở đây một bài viết cũ liên kết đến một init.dkịch bản.

Trong cả hai trường hợp, tiền đề cơ bản là bạn đang thiết lập một dịch vụ và sau đó định cấu hình để bắt đầu dừng với máy tính. Đây là kỹ thuật khá phổ biến cho các máy chủ, có rất nhiều hướng dẫn xung quanh để làm chính xác điều này.


2
không còn là trường hợp trong 16.04
chovy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.