Score:0

ไม่สามารถเริ่ม mongod จาก systemctl

ธง za

ฉันได้ลองติดตั้ง MongoDB 5.0 Community edition บน Ubuntu 18.04 จากเอกสารอย่างเป็นทางการ: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

ทุกอย่างเป็นไปด้วยดีจนกระทั่งฉันพยายามเรียกใช้บริการ mongod:

$ systemctl เริ่ม mongod

ไม่สามารถเริ่ม mongod.service: หน่วย mongod.service โหลดไม่ถูกต้อง: อาร์กิวเมนต์ไม่ถูกต้อง
ดูบันทึกระบบและ 'สถานะ systemctl mongod.service' สำหรับรายละเอียด

ฉันพยายามรวบรวมข้อมูล:

$ systemctl สถานะ mongod.service
â mongod.บริการ
   โหลดแล้ว: ข้อผิดพลาด (เหตุผล: อาร์กิวเมนต์ไม่ถูกต้อง)
   ใช้งาน: ไม่ใช้งาน (ตาย)

$ sudo systemd-analyze ตรวจสอบ mongod.service
mongod.service: บริการไม่มีการตั้งค่าทั้ง ExecStart= และ ExecStop= ปฏิเสธ
mongod.service: ล้มเหลวในการสร้าง mongod.service/start: หน่วย mongod.service โหลดไม่ถูกต้อง: อาร์กิวเมนต์ไม่ถูกต้อง
พยายามที่จะลบระบบไฟล์ดิสก์ และเราไม่สามารถอนุญาตได้

หากฉันพยายามเปิดใช้งานบริการแทน จะมีข้อความดังต่อไปนี้:

$ systemctl เปิดใช้งาน mongod.service
ไฟล์หน่วยไม่มีการกำหนดค่าการติดตั้ง (WantedBy, RequiredBy, Also, Alias
การตั้งค่าในส่วน [ติดตั้ง] และ DefaultInstance สำหรับหน่วยเทมเพลต)
ซึ่งหมายความว่าไม่ได้ตั้งใจให้เปิดใช้งานโดยใช้ systemctl
สาเหตุที่เป็นไปได้สำหรับการมีหน่วยประเภทนี้คือ:
1) หน่วยอาจเปิดใช้งานแบบคงที่โดยเชื่อมโยงจากหน่วยอื่น
   ไดเรกทอรี .wants/ หรือ .requires/
2) จุดประสงค์ของหน่วยหนึ่งอาจทำหน้าที่เป็นผู้ช่วยเหลือสำหรับหน่วยอื่นที่มี
   ความต้องการขึ้นอยู่กับมัน
3) หน่วยอาจเริ่มต้นเมื่อจำเป็นผ่านการเปิดใช้งาน (ซ็อกเก็ต เส้นทาง ตัวจับเวลา
   D-Bus, udev, สคริปต์ systemctl call, ...)
4) ในกรณีของเทมเพลตยูนิต ยูนิตนั้นควรเปิดใช้งานด้วยบางส่วน
   ระบุชื่ออินสแตนซ์

แน่นอนถ้าฉันอ่านผลลัพธ์จาก systemctl รายการหน่วยไฟล์บริการ mongod ถูกตั้งค่าสถานะเป็น คงที่.

นี่ของฉัน /lib/systemd/system/mongod.service เนื้อหา (เขียนโดยอัตโนมัติโดยการติดตั้ง mongodb):

  GNU นาโน 2.9.3 /lib/systemd/system/mongod.service                                 

[หน่วย]
คำอธิบาย=เซิร์ฟเวอร์ฐานข้อมูล MongoDB
เอกสาร=https://docs.mongodb.org/manual
หลังจาก = network.target

[บริการ]
ผู้ใช้=mongodb
Group=mongodb
EnvironmentFile=-/etc/default/mongod
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
#ขนาดไฟล์
LimitFSIZE=อินฟินิตี้
#เวลาซีพียู
LimitCPU = ระยะอนันต์
# ขนาดหน่วยความจำเสมือน
LimitAS=อินฟินิตี้
#เปิดไฟล์
LimitNOFILE=64000
# กระบวนการ / เธรด
ลิมิตNPROC=64000
#ล็อคหน่วยความจำ
LimitMEMLOCK=อินฟินิตี้
# เธรดทั้งหมด (ผู้ใช้+เคอร์เนล)
TasksMax=อินฟินิตี้
TasksAccounting=เท็จ

# ขีดจำกัดที่แนะนำสำหรับ mongod ตามที่ระบุไว้ใน
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[ติดตั้ง]
WantedBy=multi-user.target

เดอะ /var/log/mongodb/ โฟลเดอร์ว่างเปล่าแม้ว่า

โปรดทราบว่าฉันติดตั้ง MongoDB เวอร์ชันก่อนหน้า ดังนั้นฉันจึงดำเนินการตามขั้นตอนต่างๆ ในโพสต์นี้:Apt-get ล้มเหลวในการติดตั้ง mongodb 16.04 หรือ 18.04

และฉันพยายามติดตั้ง MongoDB 4.2 หลังจากนั้น และปัญหายังคงมีอยู่

มีการติดตั้งจริง ๆ เนื่องจากฉันเห็นเวอร์ชันของมัน:

ฐานข้อมูลเวอร์ชัน v4.2.18
รุ่น git: f65ce5e25c0b26a00d091a4d24eec1a8b3a4c016
เวอร์ชัน OpenSSL: OpenSSL 1.1.1 11 ก.ย. 2018
ตัวจัดสรร: tcmalloc
โมดูล: ไม่มี
สร้างสภาพแวดล้อม:
    distmod: อูบุนตู 1804
    การกำจัด: x86_64
    target_arch: x86_64

ข้อผิดพลาด systemctl เหล่านี้หมายความว่าอย่างไร ฉันควรพยายามทำอะไร ขอบคุณสำหรับการอ่าน.

แก้ไข: โปรดทราบว่าฉันต้องเรียกใช้ไฟล์ มองโกด สั่งผ่าน ซูโด เพื่อให้มันทำงานจากเทอร์มินัล

ดังนั้นฉันจึงทดสอบเพื่อแก้ไข mongod.service ไฟล์ในสองวิธี:

  • ครั้งแรกกับ ผู้ใช้ = ราก, กลุ่ม = ราก
  • จากนั้นโดยการเพิ่ม มองโกบ ไปยังกลุ่ม sudo ของฉันและใช้:
ผู้ใช้=mongodb
Group=mongodb
EnvironmentFile=-/etc/default/mongod
ExecStart=sudo /usr/bin/mongod --config /etc/mongod.conf

ทั้งสองทำให้เกิดข้อผิดพลาดเดียวกัน: อาร์กิวเมนต์ไม่ถูกต้อง

Terrance avatar
id flag
ทำตามขั้นตอนการติดตั้งสำหรับ Ubuntu 20.04 และ MongoDB 5.0 สำหรับการติดตั้ง 18.04 LTS ของคุณ: https://askubuntu.com/a/842599/231142 ฉันเพิ่งทำไปและใช้งานได้ดีสำหรับการติดตั้ง VM 18.04 LTS ที่ฉันมี
Terrance avatar
id flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [Apt-get ล้มเหลวในการติดตั้ง mongodb 16.04 หรือ 18.04] (https://askubuntu.com/questions/842592/apt-get-fails-on-16-04-or-18-04-installing-mongodb) การเพิ่มสิ่งนี้ที่นี่ เพราะคำตอบจะช่วยคุณได้
raaaahman avatar
za flag
ขออภัย @Terrance นั่นคือขั้นตอนที่ฉันทำตาม แต่ฉันเพิ่งวางลิงก์ผิดในโพสต์ของฉัน (แก้ไขแล้ว) ไม่เลย สิ่งนี้ไม่ได้ช่วยอะไร แต่ขอบคุณสำหรับคำตอบที่รวดเร็วของคุณ
Terrance avatar
id flag
คุณอาจต้องการดู: https://serverfault.com/questions/986416/systemctl-complains-about-no-installation-config-but-it-exists เนื่องจากไฟล์บริการของคุณอาจไม่ถูกต้อง ข้อผิดพลาดเดิมของคุณระบุว่า "บริการขาดทั้งการตั้งค่า ExecStart= และ ExecStop=" และทุกอย่างในนั้นจะพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ด้วย
Terrance avatar
id flag
ไฟล์ `.service` ของคุณแตกต่างจากของฉัน อาจสำรองข้อมูลของคุณไปยังตำแหน่งอื่นและแทนที่ด้วยตำแหน่งที่ฉันมีด้านล่าง มีบางบรรทัดที่แตกต่างกันที่ฉันเห็นระหว่างคุณกับฉัน
raaaahman avatar
za flag
ฉันแค่พยายามที่ ยังคงเป็นประเด็นเดียวกัน ขอบคุณที่สละเวลาช่วยฉัน
Terrance avatar
id flag
ทุกอย่างดูถูกต้องแล้ว ต้องมีอย่างอื่นผิดปกติเช่น systemd อาจยุ่งเหยิง ฉันสงสัยอย่างมากว่าเป็น MongoDB ทุกอย่างที่จำเป็นอยู่ในไฟล์ แต่ systemd ไม่สามารถโหลดได้ ลองติดตั้งใหม่ systemd `sudo apt install --reinstall systemd` มิฉะนั้นฉันคิดว่าคุณอาจกำลังดูการติดตั้ง 18.04 ที่ยุ่งเหยิงและคุณอาจต้องติดตั้งระบบปฏิบัติการใหม่
raaaahman avatar
za flag
ขอบคุณสำหรับคำแนะนำ. ฉันสามารถเรียกใช้งานได้จาก CLI และฉันได้เปลี่ยนไปใช้คอนเทนเนอร์นักเทียบท่าเพื่อไม่ให้ระบบปฏิบัติการของฉันยุ่งอีกต่อไป ฉันยังคงสนใจที่จะค้นหาว่ามีอะไรผิดปกติแม้ว่า...

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา