启动mongod fork,ERROR:subprocess失败,退出时出现错误号1

试图运行命令

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 

我也注意到在这个过程中没有创build日志文件。

我有同样的事情,原来是一个权限问题。 如果子进程的所有者无法访问日志路径,或者日志路径不存在,则会失败。

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

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

如果你真的想把它放在你的/ var / log目录下,只需要改变权限。

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

对于遇到这个错误的任何人(即使你用sudo运行它),确保你声明了日志文件的文件名,如:/var/log/mongodb.log。 我只是在/ var / log /目录路径,因为我想念读mongo文档。

我删除了旧的

 /var/run/mongodb/mongod.pid 

和所有的工作。

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

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

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

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

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

我得到了同样的问题,因为用户的权限,当我登录Ubuntu用户谁没有权限创建文件,然后也出现这个错误。

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