Pasé un tiempo investigando esto, y parece que la carpeta pid y los permisos de archivo no funcionan con el demonio predeterminado.
La solución más simple que he encontrado es deshabilitar el archivo pid simplemente colocando un # delante de la línea en el archivo de configuración.
vi /etc/mongod.conf
busque la línea que dice pidfilepath=/var/run/mongodb/mongod.pid y cámbiela según corresponda.
# pidfilepath=/var/run/mongodb/mongod.pid
Para obtener información sobre lo que hace comentarlo, consulte aquí.http://docs.mongodb.org/manual/reference/configuration-options/#processManagement.pidFilePath
Si está iniciando mongod como un servicio usando:
sudo service mongod start
Asegúrese de que los directorios definidos para logpath, dbpath y pidfilepath en su mongod.conf existan y sean propiedad de mongod:mongod.
Tengo el mismo problema, lo resolví temporalmente, deshabilité SELinux, reinicié la máquina, eliminé mongod.lock:
#rm /var/lib/mongo/mongod.lock
Al crear el archivo /var/run/mongodb/mongo.pid (como se menciona en el archivo de configuración /etc/mongod.conf):
#mkdir /var/run/mongodb
#touch /var/run/mongodb/mongod.pid
y dando 777 permisos:
#chmod 777 /var/run/mongodb/mongod.pid
y comenzando mongo:
#service mongod start
Pero el problema persiste después de reiniciar la máquina. La carpeta y el archivo desaparecen.
Lo que funcionó para mí en Fedora 20:necesitamos crear el directorio temporal en cada arranque, y eso lo maneja systemd-tmpfiles. Por lo tanto, cree un archivo /lib/tmpfiles.d/mongodb.conf y coloque una línea en él:
d /var/run/mongodb 0755 mongod mongod
Eso parece manejarlo en los reinicios; si no desea reiniciar de inmediato, puede ejecutarlo con:
sudo systemd-tmpfiles --create mongodb.conf
(Consulte las páginas de manual de systemd-tmpfiles)