启动mongod fork,ERROR:子进程失败,退出,错误编号为1

时间:2015-02-18 18:26:16

标签: mongodb unix amazon-ec2

尝试运行命令

mongod --fork --logpath /var/log/mongodb.log

在amazon ec2 32位实例(Amazon Linux AMI版本2014.09)上,我遇到以下错误:

2015-02-18T18:14:09.007+0000 
2015-02-18T18:14:09.007+0000 warning: 32-bit servers don't have journaling    
enabled by default. Please use --journal if you want durability.
2015-02-18T18:14:09.007+0000 
about to fork child process, waiting until server is ready for connections.
forked process: 17116
ERROR: child process failed, exited with error number 1

我还注意到在此过程中没有创建日志文件。

12 个答案:

答案 0 :(得分:63)

我有同样的事情,结果证明是权限问题。如果子进程的所有者无法访问日志路径或者日志路径不存在,则它将失败。

我所做的是将日志目录放在我的主目录中:

mkdir ~/log
mongod --fork --logpath ~/log/mongodb.log

如果您确实想将它放在/ var / log目录中,只需更改权限即可。

答案 1 :(得分:8)

对于遇到此错误的任何其他人[即使您使用sudo运行它]请确保您在日志文件中声明:/var/log/mongodb.log。我只有/ var / log /中的目录路径,因为我错过了阅读mongo文档。

答案 2 :(得分:7)

我也有同样的错误,但是我使用sudo并运行sudo mongod --fork --logpath /var/log/mongodb.log。正如@jryancanty所提到的那样,它只是一个权限错误。

答案 3 :(得分:1)

我删除了旧的

/var/run/mongodb/mongod.pid

并且一切正常。

答案 4 :(得分:0)

如果您有密钥文件,那么权限也可能过于开放。确保将其设置为0400

答案 5 :(得分:0)

如果您在日志文件中看到/tmp/mongodb-27017.sock存在问题,这可能会有效

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

答案 6 :(得分:0)

sudo mongod --fork --logpath /var/log/mongodb.log

在ubuntu中无需更改/ var中的权限,在logpath中使用完整的日志文件名

答案 7 :(得分:0)

由于用户权限,我遇到了同样的问题,当我使用没有权限创建文件的用户登录ubuntu时,也发生了此错误。

所以,你必须用sudo运行命令。 :)

答案 8 :(得分:0)

我错误地将日志路径设置为var / mongodb / db / mongo.log而不是/var/mongodb/db/mongo.log,因此Mongo试图访问/ home中不存在的文件夹。

答案 9 :(得分:0)

从EPEL repo(2.x)删除mongo并从mongo repo(4.x)安装mongo之后,我也遇到同样的问题。

journalctl -xe说:

ERROR: child process failed, exited with error number 1

就我而言,我有具有root用户权限的旧日志文件。 只需设置正确的权限或删除日志并检查日志目录权限即可。

答案 10 :(得分:0)

如果您已经有用于存储db数据的dbpath文件夹,并且在conf文件中为dbpath提供了新路径,也会生成此错误。在为dbpath创建新文件夹时,如果日志和PID存在,则将其删除。

答案 11 :(得分:0)

之后我有同样的问题

sudo rm /tmp/mongodb-27017.sock
sudo chown mongod:mongod /var/log/mongodb

一切正常。