mongoDb 2.6无法在Oracle Linux上使用init脚本启动

使用yum在OL 6.3上安装了MongoDb 2.6.3,但是当试图停止并启动mongod服务时,默认的init脚本似乎失败了。 我可以跟踪停止到$pid_file被检测为_/var/run/mongodb/mongod.pid (即与path前面的空间)的问题。 在这个空间被删除后,mongod可以停止。
但是,我似乎无法使用相同的脚本启动它(这也是停止修复之前的情况)。 发出service mongod start命令后,我得到ERROR: child process failed, exited with error number 1和在日志中: ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: Success ,在***** SERVER RESTARTED *****行,再加上一个空的pidfile在引用的位置创build。 即使我增加日志的冗长度,也没有别的东西出现。 如果我以root身份运行Mongod,Mongod会很好,但如果我使用非特权用户(mongod),上述情况就会发生。 我可以检测到这一点,通过执行命令,最终得到运行和没有用户更改 – runuser -s /bin/bash mongod -c "ulimit -S -c 0 ; numactl --interleave=all /usr/bin/mongod -f /etc/mongod.conf"

其他信息 – 我正在使用2.4configuration格式:

 logpath = /data/mongodb/log/mongod.log logappend = true fork = true dbpath = /data/mongodb/db auth = true port = 27017 pidfilepath = /var/run/mongodb/mongod.pid traceExceptions = true verbose = true vvvv = true keyFile=/data/mongodb/keyfile 

检查pidfilepath上的权限,他们似乎没有问题(在父母rx,在MongoDB上rwx)。 另外,在另一个盒子(相同的OS)mongoDb 2.4运行良好。 任何想法?

编辑 – 如果我不使用一个pidfile(没有pidfilepath设置),似乎都工作正常,但这不算作解决scheme,而是一个解决方法…

这似乎与SERVER-14679相关“(CentOS 7 / RHEL 7)init.d脚本应该为pid文件创build目录(如果缺less的话)” ,这是固定的2.6.5。

同时,请根据此提交编辑初始化脚本。

如果被修改的初始化脚本按预期启动MongoDB,请添加一条注释,以应用于Oracle Linux。