ฉันต้องเริ่มต้นเซิร์ฟเวอร์ MongoDB ทุกครั้งที่ระบบรีสตาร์ท ฉันจะกำหนดค่าให้เริ่มต้นด้วยระบบปฏิบัติการของฉันได้อย่างไร ฉันใช้ Ubuntu 11.04
ฉันต้องเริ่มต้นเซิร์ฟเวอร์ MongoDB ทุกครั้งที่ระบบรีสตาร์ท ฉันจะกำหนดค่าให้เริ่มต้นด้วยระบบปฏิบัติการของฉันได้อย่างไร ฉันใช้ Ubuntu 11.04
คำตอบ:
ฉันมีปัญหาเดียวกันกับ Debian jessie และวิธีแก้ปัญหาง่ายๆของฉันคือ:
systemctl enable mongod.service
ฉันคิดว่าใน Ubuntu มันเหมือนกัน
- แก้ไข -
ตามความคิดเห็นมันทำงานบน Ubuntu ด้วย ใน Ubuntu 18.04 LTS ดูเหมือนว่าจะเป็นวิธีนี้:
systemctl enable mongodb.service
ขอบคุณ @Adam บางทีพวกเขาอาจเปลี่ยนชื่อของบริการ
Ubuntu Mate 16.04.2 LTS
(sudo) systemctl start mongod
เริ่มบริการ mongd
mongod.service
เป็นmongodb.service
Ubuntu 18.04 LTS - แปลก?
หากคุณติดตั้ง 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
/etc/init/mongodb.conf
ในการเริ่มต้นโดยอัตโนมัติแก้ไข
การควบคุมลิงก์บริการ init.d ทั้งหมดควรทำได้ด้วยเครื่องมือ update-rc.d
คือการเปิด mongod daemon ใน runlevels เริ่มต้น (เช่นเปิดมันตอนบูต):
update-rc.d mongodb defaults
ดูhttps://help.ubuntu.com/community/UbuntuBootupHowtoสำหรับข้อมูลเพิ่มเติม ลิงค์นี้จะบอกทุกสิ่งที่คุณต้องการทราบเกี่ยวกับวิธีการตั้งค่าโปรแกรมตอนบูต
/etc/init/mongodb.conf
สไตล์คุณจำเป็นต้องแก้ไข
หากคุณติดตั้ง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]
ฉันใช้ crontab สำหรับ Ubuntu มันใช้งานได้ดี เพื่อให้สามารถแก้ไขไฟล์
Sudo crontab –e
เพิ่มบรรทัดนี้ลงในไฟล์
@reboot sudo service mongod start &
"&" ถอนหายใจในตอนท้ายช่วยให้พื้นหลังทำงานได้
Ctrl+ xสำหรับทางออกกด "Y" เมื่อได้รับแจ้ง และเก็บชื่อไฟล์เป็น "crontab"
หากคุณมี Ubuntu 16.04 LTS คุณสามารถเปิดใช้ mongo เพื่อเริ่มการบู๊ตในคอนโซลของคุณ: sudo systemctl enable mongod
ฉันใช้วิธีนี้กับ MongoDB Community Edition 3.6 และใช้งานได้ รีบูตเครื่องของคุณและทดสอบว่า mongo กำลังพิมพ์อยู่:
sudo service mongod status
คุณสามารถใช้คำสั่ง 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/
ฉันใช้โพสต์นี้เป็นจุดเริ่มต้นอย่างต่อเนื่องเพื่อให้แท่นขุดเจาะชิ้นงานใหม่ทำงาน มันมีส่วนในการกำหนดค่าการพุ่งพรวดที่ฉันเคยใช้
http://joslynesser.com/blog/archives/2010/09/28/mongodb-sharding-guide-server-setup-on-ubuntu-ec2/
หากคุณติดตั้ง MongoDB apt-get
ตามที่อธิบายไว้ในคู่มือการติดตั้ง MongoDB Ubuntuมันจะมาพร้อมกับสคริปต์เริ่มต้นพื้นฐานและไฟล์กำหนดค่า (แนะนำให้ใช้ไฟล์ปรับแต่ง)
คุณสามารถดูที่นี่สำหรับโพสต์เก่าที่เชื่อมโยงไปยังinit.d
สคริปต์
ไม่ว่าในกรณีใดก็ตามหลักฐานขั้นพื้นฐานคือคุณกำลังตั้งค่าบริการแล้วกำหนดค่าให้เริ่มต้นกับคอมพิวเตอร์ นี่เป็นเทคนิคที่ใช้กันโดยทั่วไปสำหรับเซิร์ฟเวอร์มีบทแนะนำมากมายสำหรับการทำสิ่งนี้