MongoDB hanya mendukung versi Dukungan Jangka Panjang Ubuntu (LTS). Yang terakhir adalah Ubuntu 14,04 LTS, di mana proses init dikelola oleh Upstart milik Canonical. Namun saya menggunakan Ubuntu 15.10 dengan proses init standar Linux SystemD. Jadi saya tidak bisa memulai layanan MongoDB saat boot.
Ketika saya membaca status layanan atau mencoba memulainya, perlihatkan pesan "gagal dimuat":
> systemctl status mongod
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
> sudo systemctl start mongod
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.
Saya menjalankan MongoDB 3.2 Community Edition (mongodb-org) resmi dari https://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/ bukan paket meta-paket MongoDB 2.6 (mongodb) dari Ubuntu gudang.
> sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
> echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
> sudo apt-get update
> sudo apt-get install -y mongodb-org
Ada yang tahu cara memulai MongoDB dengan SystemD?
Jawaban:
Saya berhasil memulai layanan MongoDB dengan SystemD saat boot:
Saya menghapus instalan paket meta resmi (mongodb-org) v3.2, kemudian saya menginstal paket meta (mongodb) v2.6 dari repositori Ubuntu:
Buat file konfigurasi layanan seperti yang ditunjukkan di bawah ini:
Verifikasi dalam daftar jika layanan ini diaktifkan atau dinonaktifkan menggunakan perintah di bawah ini:
Jika dinonaktifkan atau tidak ada dalam daftar, aktifkan:
Periksa lagi:
Sekarang Anda dapat mengelola layanan pada proses init SystemD:
Nikmati!
sumber
/lib
./lib
. Bagian-bagian dari definisi layanan cukup baik untuk memulai layanan, pengaturan tambahan tidak berpengaruh signifikan, sehingga dianggap saling melengkapi. Jika Anda menambahkanPIDFile=/var/run/mongodb/mongod.pid
baris danrun
instruksi onExecStart=
line, Anda mendapatkan kesalahan, karena saya menggunakan paket meta (mongodb) 2.6, bukan paket meta (mongodb-org) 3.2.chown
mereka sebelum mongod akan mulai melalui systemctl. Tidak ada dokumen instal yang tidak akan memberi tahu saya tetapi jika itu membantu!Pada instalasi default dari repositori MongoDB, untuk memiliki startup otomatis layanan mongod , yang perlu Anda lakukan adalah mengaktifkan layanan system.d:
systemctl enable mongod.service
(memperhatikan nama layanan mongo d , bukan mongodb )CATATAN: ini diuji pada Debian / GNU Jessie 8.x dengan systemd dan Ubuntu Xerus 16.04 LTS.
sumber
/lib/systemd/system/mongod.service
dalam Ubuntu 16.04 saya