Saya telah menghabiskan beberapa waktu untuk menyelidiki hal ini, dan sepertinya folder pid dan izin file tidak berfungsi dengan daemon default.
Solusi paling sederhana yang saya temukan adalah menonaktifkan file pid dengan hanya meletakkan # di depan baris di file konfigurasi.
vi /etc/mongod.conf
temukan baris yang mengatakan pidfilepath=/var/run/mongodb/mongod.pid dan ubah sesuai itu.
# pidfilepath=/var/run/mongodb/mongod.pid
Untuk informasi tentang apa yang dikomentari, periksa di sini.http://docs.mongodb.org/manual/reference/configuration-options/#processManagement.pidFilePath
Jika Anda memulai mongod sebagai layanan menggunakan:
layanan sudo mongod mulai
Pastikan direktori yang ditentukan untuk logpath, dbpath, dan pidfilepath di mongod.conf Anda ada dan dimiliki oleh mongod:mongod.
Saya memiliki masalah yang sama, saya menyelesaikannya untuk sementara, menonaktifkan SELinux, menyalakan ulang mesin, menghilangkan mongod.lock:
#rm /var/lib/mongo/mongod.lock
Dengan membuat file /var/run/mongodb/mongo.pid (sebagaimana disebutkan dalam file konfigurasi /etc/mongod.conf):
#mkdir /var/run/mongodb
#touch /var/run/mongodb/mongod.pid
dan memberikan 777 izin:
#chmod 777 /var/run/mongodb/mongod.pid
dan memulai mongo:
#service mongod start
Namun masalah tetap ada setelah menghidupkan ulang mesin. Folder dan file menghilang.
Apa yang berhasil bagi saya di Fedora 20:kita perlu membuat dir temp di setiap boot, dan itu ditangani oleh systemd-tmpfiles. Jadi, buat file /lib/tmpfiles.d/mongodb.conf dan masukkan satu baris di dalamnya:
d /var/run/mongodb 0755 mongod mongod
Itu sepertinya menanganinya saat restart; jika Anda tidak ingin segera memulai ulang, Anda dapat menjalankannya dengan:
sudo systemd-tmpfiles --create mongodb.conf
(Lihat halaman manual untuk file systemd-tmp)