จะเริ่มต้นเซิร์ฟเวอร์ MongoDB บนระบบเริ่มได้อย่างไร


85

ฉันต้องเริ่มต้นเซิร์ฟเวอร์ MongoDB ทุกครั้งที่ระบบรีสตาร์ท ฉันจะกำหนดค่าให้เริ่มต้นด้วยระบบปฏิบัติการของฉันได้อย่างไร ฉันใช้ Ubuntu 11.04


1
ฉันสงสัยว่าทำไมไม่มีใครแนะนำให้ใช้พุ่งพรวดที่นี่
Tom

คำตอบ:


132

ฉันมีปัญหาเดียวกันกับ Debian jessie และวิธีแก้ปัญหาง่ายๆของฉันคือ:

systemctl enable mongod.service

ฉันคิดว่าใน Ubuntu มันเหมือนกัน

- แก้ไข -

ตามความคิดเห็นมันทำงานบน Ubuntu ด้วย ใน Ubuntu 18.04 LTS ดูเหมือนว่าจะเป็นวิธีนี้:

systemctl enable mongodb.service

ขอบคุณ @Adam บางทีพวกเขาอาจเปลี่ยนชื่อของบริการ


10
ทำงานให้ฉันในวันที่Ubuntu Mate 16.04.2 LTS
Muhammad Gelbana

2
สงสารไม่มีข้อมูลในเอกสารอย่างเป็นทางการเกี่ยวกับการเริ่มบริการ
UpTheCreek

2
อาจต้อง(sudo) systemctl start mongodเริ่มบริการ mongd
เจฟฟ์เสี่ยว

2
ใช้ได้กับ Ubuntu 18.04 LTS
89n3ur0n

1
ใช้งานได้สำหรับฉันเท่านั้นหากฉันเปลี่ยนmongod.serviceเป็นmongodb.serviceUbuntu 18.04 LTS - แปลก?
อดัม

37

หากคุณติดตั้ง MongoDB โดยใช้ Advanced Packaging Tool (ฉลาด) มันจะกำหนดค่าสคริปต์เริ่มต้นของคุณให้เรียกใช้ Mongo โดยอัตโนมัติเมื่อบูทระบบ

ขั้นตอนดังต่อไปนี้ขั้นแรกให้กำหนดค่าaptเพื่อให้สามารถดาวน์โหลดแพ็คเกจ Mongo ได้:

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

เพิ่มบรรทัดนี้ไปยังแหล่งที่มารายการแล้วบันทึก:

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

จากนั้นดาวน์โหลดและติดตั้ง Mongo ด้วยโปรแกรมอรรถประโยชน์apt-get :

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

หากคุณต้องการเปลี่ยนแปลงการกำหนดค่าให้แก้ไขmongodb.confของคุณแล้วรีสตาร์ท: 

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

5
หากคุณต้องการที่จะเปลี่ยนแปลงในภายหลังว่ามันไม่ได้เริ่มต้น MongoDB /etc/init/mongodb.confในการเริ่มต้นโดยอัตโนมัติแก้ไข
kynan

11

การควบคุมลิงก์บริการ init.d ทั้งหมดควรทำได้ด้วยเครื่องมือ update-rc.d

คือการเปิด mongod daemon ใน runlevels เริ่มต้น (เช่นเปิดมันตอนบูต):

update-rc.d mongodb defaults

ดูhttps://help.ubuntu.com/community/UbuntuBootupHowtoสำหรับข้อมูลเพิ่มเติม ลิงค์นี้จะบอกทุกสิ่งที่คุณต้องการทราบเกี่ยวกับวิธีการตั้งค่าโปรแกรมตอนบูต


2
การกระจาย 10gen MongoDB ไม่ได้ใช้ระบบ-V สคริปต์ init /etc/init/mongodb.confสไตล์คุณจำเป็นต้องแก้ไข
kynan

ฉันต้องทำสิ่งนี้หรือไม่
tofutim

5

หากคุณติดตั้งMongoDB Community Edition (ซึ่งเป็นวิธีที่แนะนำเนื่องจากได้รับการปรับปรุงบ่อยกว่าแพ็คเกจที่แจกจ่ายในที่เก็บแพคเกจ Ubuntu) คุณกำหนดค่าพฤติกรรมเริ่มต้น / หยุดของmongodผ่านสคริปต์ init upstart /etc/init/mongod.confซึ่งเป็นค่าเริ่มต้นที่จะเริ่ม daemon โดยอัตโนมัติเมื่อบูต

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

หากคุณไม่ต้องการให้มันเริ่มโดยอัตโนมัติให้แทนที่ 2 บรรทัดเหล่านั้นด้วย

stop on runlevel [023456]

สิ่งนี้จะเริ่มต้นเซิร์ฟเวอร์ก่อนที่จะมีใครเข้าสู่ระบบหรือไม่
งานกาเบรียลแฟร์

@GabrielFair ใช่
kynan

5

ฉันใช้ crontab สำหรับ Ubuntu มันใช้งานได้ดี เพื่อให้สามารถแก้ไขไฟล์

Sudo crontab –e 

เพิ่มบรรทัดนี้ลงในไฟล์

@reboot sudo service mongod start &

"&" ถอนหายใจในตอนท้ายช่วยให้พื้นหลังทำงานได้

Ctrl+ xสำหรับทางออกกด "Y" เมื่อได้รับแจ้ง และเก็บชื่อไฟล์เป็น "crontab"


3

หากคุณมี Ubuntu 16.04 LTS คุณสามารถเปิดใช้ mongo เพื่อเริ่มการบู๊ตในคอนโซลของคุณ:
sudo systemctl enable mongod
ฉันใช้วิธีนี้กับ MongoDB Community Edition 3.6 และใช้งานได้ รีบูตเครื่องของคุณและทดสอบว่า mongo กำลังพิมพ์อยู่:
sudo service mongod status


3

คุณสามารถใช้คำสั่ง systemctl เพื่อเปิดใช้งานบริการ mongo ของคุณที่รันตอนบูตระบบ

สร้างบริการเช่นนั้น

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

วางเนื้อหาในไฟล์

[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

หลังจากนั้นคุณจะสามารถใช้คำสั่งบริการเช่น

sudo service mongod start|stop|restart

แล้วถ้าคุณต้องการที่จะทำให้มันขึ้นเครื่องบูตคุณสามารถสร้างไฟล์ mongod ภายใต้ /etc/init.d/


1

chkconfig --levels 235 mongod on?

โดย mongodb เป็นชื่อบริการของคุณ


2
การแจกจ่าย 10gen MongoDB ไม่ได้ใช้สคริปต์เริ่มต้นสไตล์ System-V ตามค่าเริ่มต้น (แม้ว่าจะมีให้) แก้ไข/etc/init/mongodb.confแทน
kynan

@kynan แก้ไขได้อย่างไร ฉันจะเปลี่ยน / เพิ่มไฟล์ mongod.conf ได้อย่างไร
Kieveli

@Kieveli: ดูคำตอบนี้
kynan

1

ฉันใช้โพสต์นี้เป็นจุดเริ่มต้นอย่างต่อเนื่องเพื่อให้แท่นขุดเจาะชิ้นงานใหม่ทำงาน มันมีส่วนในการกำหนดค่าการพุ่งพรวดที่ฉันเคยใช้

http://joslynesser.com/blog/archives/2010/09/28/mongodb-sharding-guide-server-setup-on-ubuntu-ec2/


1
โปรดอย่าโพสต์ "ลิงก์ภายนอกเท่านั้น" เป็นไปได้ว่าลิงก์ภายนอกอาจลงไปในอนาคตและคำตอบนี้จะไม่สมบูรณ์ นอกจากลิงค์โปรดโพสต์ส่วนที่เกี่ยวข้องของบทความที่นี่: เช่น โพสต์ส่วนที่แสดง "วิธีเริ่มต้นเซิร์ฟเวอร์ MongoDB บนระบบเริ่มต้น" ใช้พุ่งพรวด
rigged

1

หากคุณติดตั้ง MongoDB apt-getตามที่อธิบายไว้ในคู่มือการติดตั้ง MongoDB Ubuntuมันจะมาพร้อมกับสคริปต์เริ่มต้นพื้นฐานและไฟล์กำหนดค่า (แนะนำให้ใช้ไฟล์ปรับแต่ง)

คุณสามารถดูที่นี่สำหรับโพสต์เก่าที่เชื่อมโยงไปยังinit.dสคริปต์

ไม่ว่าในกรณีใดก็ตามหลักฐานขั้นพื้นฐานคือคุณกำลังตั้งค่าบริการแล้วกำหนดค่าให้เริ่มต้นกับคอมพิวเตอร์ นี่เป็นเทคนิคที่ใช้กันโดยทั่วไปสำหรับเซิร์ฟเวอร์มีบทแนะนำมากมายสำหรับการทำสิ่งนี้


2
ไม่มีกรณีใน 16.04 อีกต่อไป
chovy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.