ฉันยังใหม่กับโลกของลินุกซ์ดังนั้นฉันจึงขอโทษสำหรับสิ่งผิดปกติ
ฉันพยายามเรียกใช้ Mongo DB บนเครื่อง Debian 8.5 เมื่อฉันติดตั้งแพคเกจ (สร้างไว้ล่วงหน้าจาก percona.com) ฉันสังเกตเห็นไฟล์ต่อไปนี้:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
เกี่ยวกับ /etc/init.d/mongod
ฉันเข้าใจว่าสิ่งนี้เรียกว่า (ตราบใดที่มีการลงทะเบียนผ่านupdate-rc.d
) ที่บูต / ในสถานะระบบอื่น ๆ (ไม่ต้องการรับข้อมูลทางเทคนิคเกี่ยวกับเรื่องนี้ฉันดูดซับข้อมูลจำนวนมากและสิ่งนี้ดูมีความสำคัญน้อยกว่า)
นี่เป็นสิ่งที่ดีที่สุดสำหรับฉัน สคริปต์ทำการเริ่มต้นจำนวนมากและเปิด mongo daemon ในที่สุด มันดูเหมือนว่าจะมี“ทริกเกอร์” สำหรับการเริ่มต้น, หยุด, รีสตาร์ท ฯลฯ sudo service mongod <action>
และเท่าที่ผมเข้าใจว่าฉันสามารถเรียกผู้ที่มี
เกี่ยวกับ /lib/systemd/system/mongod.service
ไฟล์นี้ดูเหมือนจะทำสิ่งเดียวกัน (เช่นเรียกใช้ mongo) แต่มีการกำหนดค่าน้อยกว่าเพียงหนึ่งบรรทัดในพารามิเตอร์ ExecStart:
[Unit]
Description=MongoDB (High-performance, schema-free document-oriented database)
After=time-sync.target network.target
[Service]
Type=forking
User=mongod
Group=mongod
PermissionsStartOnly=true
EnvironmentFile=/etc/default/mongod
ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
PIDFile=/var/run/mongod.pid
[Install]
WantedBy=multi-user.target
sudo systemctl start mongod
เท่าที่ผมเข้าใจในเรื่องนี้สามารถถูกเรียกด้วย
ฉันไม่เข้าใจว่าจะเรียกสิ่งนี้ตอนบูทหรือไม่
ฉันไม่เข้าใจว่าทำไมความต้องการไฟล์ 'service' สองไฟล์นี้และฉันจะกำจัดไฟล์ได้อย่างไร (อาจเป็นไฟล์ใน / lib / systemd เนื่องจากมันง่ายกว่ามาก)
ฉันไม่เข้าใจว่ามีความสัมพันธ์ระหว่างสองหรือไม่
ฉันได้อ่านที่
systemctl
ทำงานในสคริปต์เกินไปและในกรณีนี้ผมไม่เข้าใจว่าที่ของทั้งสองไฟล์จะถูกเรียกโดยinit.d
systemctl mongod start
ฉันคิดว่ามีความซ้ำซ้อนและฉันควรเลือกเพียงหนึ่งในสองวิธี และฉันต้องการให้แน่ใจว่ามันเป็น
- เรียกว่าบูต
- callable โดยคำสั่ง (เช่น
service
หรือsystemctl
)
คุณช่วยฉันล้างใจของฉันได้ไหม ด้วยความช่วยเหลือของความคิดเห็นบางอย่างฉันอาจจะสามารถมุ่งเน้นและแคบลงคำถาม
systemctl disable mongod
; จากนั้นเปลี่ยนชื่อ mongod.service เป็น mongod-backup.servicesystemctl daemon-reload
แล้วก็ คุณคิดว่าสิ่งนี้ถูกต้องหรือไม่? ฉันอ่านแล้วคุณไม่ควรแก้ไขไฟล์ใน / lib / systemd / system / แต่โดยไม่ต้องเปลี่ยนชื่อ systemctl จะไม่สนใจสคริปต์ init.d