Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb 3.0.3 Ubuntu 14.04.2 AWS m3.medium Upstart PID不匹配_Mongodb_Ubuntu_Upstart - Fatal编程技术网

mongodb 3.0.3 Ubuntu 14.04.2 AWS m3.medium Upstart PID不匹配

mongodb 3.0.3 Ubuntu 14.04.2 AWS m3.medium Upstart PID不匹配,mongodb,ubuntu,upstart,Mongodb,Ubuntu,Upstart,是否可以通过upstart运行mongod,并通过start-stop守护进程或其他方式跟踪PID 按照以下说明在ubuntu安装的mongodb文档页面上进行操作: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multivers

是否可以通过upstart运行mongod,并通过start-stop守护进程或其他方式跟踪PID

按照以下说明在ubuntu安装的mongodb文档页面上进行操作:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
在此之前,ubuntu软件包的所有剩余部分都已被删除

现在,我通过Upstart在boot上运行了一个mongod实例。但出于某种原因,Upstart和initctl并不知道这一点。它启动正常,但initctl认为它处于停止/等待状态

也就是说:

My/etc/mongod.conf.yml:

storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
  logRotate: rename
  component:
    accessControl:
      verbosity: 2

net:
   bindIp: 127.0.0.1
   port: 27017

processManagement:
  fork: true

setParameter:
   enableLocalhostAuthBypass: false

security:
  authorization: disabled
My/etc/init/mongod.conf upstart脚本(重命名为
mongodb.pid
mongod.pid
):

重新启动后,我看到以下情况:

$ ps aux | grep mongo
mongodb   1085  0.2  1.1 363764 46704 ?        Sl   11:57   0:06 /usr/bin/mongod --config /etc/mongod.conf.yml
一切似乎都很好。但是mongod.pid文件不存储与进程相同的pid:

$ cat /var/run/mongod.pid
985
应该是1085

修复此问题的最佳方法是什么,以便Upstart能够访问实际的PID


更新:尝试添加
expect daemon
expect fork
,但行为有所改变:initctl现在看到一个PID,表示mongod正在运行,但PID错误。这意味着任何后续命令,如
sudo stop mongod
sudo start mongod
都将挂起。fork和daemon似乎都不能解决这个问题;我错过了什么

好吧,我脸上有点鸡蛋味——我忽略了一个事实,那就是我那闪亮的新
/etc/mongod.conf.yml
包含
processManagement.fork:true
。将此设置为false将允许启动/停止守护程序捕获适当的PID

$ cat /var/run/mongod.pid
985