Chvíli jsem to zkoumal a zdá se, jako by s výchozím démonem nefungovala složka pid a oprávnění k souboru.
Nejjednodušším řešením, se kterým jsem se setkal, je zakázat soubor pid pouhým vložením # před řádek v konfiguračním souboru.
vi /etc/mongod.conf
najděte řádek, který říká pidfilepath=/var/run/mongodb/mongod.pid a podle toho jej změňte.
# pidfilepath=/var/run/mongodb/mongod.pid
Informace o tom, co komentování dělá, najdete zde.http://docs.mongodb.org/manual/reference/configuration-options/#processManagement.pidFilePath
Pokud spouštíte mongod jako službu pomocí:
sudo služba mongod start
Ujistěte se, že adresáře definované pro logpath, dbpath a pidfilepath ve vašem mongod.conf existují a jsou vlastněny mongod:mongod.
Mám stejný problém, vyřešil jsem to dočasně, deaktivoval SELinux, restartoval počítač, odstranil mongod.lock:
#rm /var/lib/mongo/mongod.lock
Vytvořením souboru /var/run/mongodb/mongo.pid (jak je uvedeno v konfiguračním souboru /etc/mongod.conf):
#mkdir /var/run/mongodb
#touch /var/run/mongodb/mongod.pid
a udělením 777 oprávnění:
#chmod 777 /var/run/mongodb/mongod.pid
a začínáme mongo:
#service mongod start
Problém ale přetrvává i po restartu stroje. Složka a soubor zmizí.
Co se mi osvědčilo na Fedoře 20:potřebujeme vytvořit temp dir při každém bootu, a to je řešeno pomocí systemd-tmpfiles. Vytvořte tedy soubor /lib/tmpfiles.d/mongodb.conf a vložte do něj jeden řádek:
d /var/run/mongodb 0755 mongod mongod
Zdá se, že to zvládne při restartech; pokud nechcete restartovat hned, můžete to provést pomocí:
sudo systemd-tmpfiles --create mongodb.conf
(Viz manuálové stránky pro systemd-tmpfiles)