mongodb 3.0.3 Ubuntu 14.04.2 AWS m3.medium Upstart PID不匹配
是否可以通过upstart运行mongod,并通过start-stop守护进程或其他方式跟踪PID 按照以下说明在ubuntu安装的mongodb文档页面上进行操作: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
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