簡體   English   中英

無法啟動mongoDB作為服務

[英]Can't start mongoDB as a service

我想將mongoDB作為服務運行。 實例應被配置為一個單節點replicaset能夠一個elasticSearch實例與連接到它的連接器

所以我擴展了mongod.conf:

...
replication:
  replSetName: "singleNodeRepl"
...

我嘗試了不同的方法來啟動mongod,但沒有任何作用。

當我嘗試通過$ service mongod start ,拋出以下錯誤:

start: Rejected send message, 1 matched rules; type="method_call", sender=":1.106" (uid=1225 pid=26018 comm="start mongod ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

當我以sudo執行此命令時(什么不是最佳實踐,對吧?),顯示其“運行”和后續消息:

mongod start/running, process 26034

但是過程26034不存在並且ps aux | grep mongo ps aux | grep mongo也什么都沒顯示?!

接下來嘗試:將其作為普通應用程序運行

mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl

此處顯示以下異常:

2016-04-08T14:31:35.192+0200 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2016-04-08T14:31:35.192+0200 I CONTROL  [initandlisten] dbexit:  rc: 100

當我運行~$ sudo mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl ,一切都很好,但那不是我的目標:它不是作為服務運行而是以root身份運行。

mongod-logfile經常保持不變。 但最后幾行很好奇:

2016-04-08T14:24:56.242+0200 E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2016-04-08T14:24:56.242+0200 I -        [initandlisten] Fatal Assertion 28578
2016-04-08T14:24:56.242+0200 I -        [initandlisten]
***aborting after fassert() failure

一個mongodb-27017.sock存在,但刪除(在任何地方建議)沒有幫助。

基於上面的錯誤,如果嘗試了幾個解決方案 ,但沒有任何幫助。

我認為這是一個非常簡單的錯誤......但是哪一個?

[編輯:]我發現,我或許應該指定config-location。 所以(工作但很糟糕)命令看起來像:

$ sudo mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl --config /etc/mongod.conf

這會帶來以下錯誤:

warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default

這是一個舊的東西,這是這個問題的解決方案,突然不再工作了!?

我有問題停止並啟動mongod作為服務。 事實證明,升級腳本存在問題。 我發現這個討論似乎解決了這個問題。

建議的解決方案非常多:(現在復制粘貼)

vim /etc/init.d/mongod

查找stop()函數(以及用於良好度量的start()函數)並刪除以下行中$ PIDFILE周圍的引號。

killproc -p $PIDFILE -d 300 /usr/bin/mongod

做這個:

sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongodb start

如果這不起作用,請告訴我!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM