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

问题描述 投票:44回答:10

在尝试运行命令时

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

在亚马逊ec2 32位实例(亚马逊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

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

mongodb unix amazon-ec2
10个回答
63
投票

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

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

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

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


0
投票

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

journalctl -xe说:

ERROR: child process failed, exited with error number 1

在我的情况下,我有旧的日志文件与root权限。只需设置正确的权限或删除日志并检查日志目录权限。


8
投票

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


7
投票

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


1
投票

我删除了旧的

/var/run/mongodb/mongod.pid

一切顺利。


0
投票

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


0
投票

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

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


0
投票

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

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


0
投票

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.