web-dev-qa-db-ja.com

Ubuntu 16.04 LTSでmongodbを実行する

Ubuntu 16.04 LTSでMongodbをサービスとして実行するにはどうすればよいですか?数日前、サーバーをUbuntu 16.04にアップグレードしました。再起動してもMongoDBサービスが開始されないことに気付きました。使用してみる

Sudo initctl start mongod

トリックをしませんでした。誰もこれを解決する方法を知っていますか?

38
Sagi Forbes

Ubuntu 16.04(Ubuntu Xenial xerusとも呼ばれる)をアップグレードまたはインストールした人は、古いサービスの一部が実行を停止したことに気付きました。この問題はバージョン15.04から既知ですが、上記のバージョンに焦点を当てます。

私のMongoDBの場合はそうでした。簡単に言えば、Ubuntuは新興企業からsystemdに移行しました。これらの問題に対する一般的な解決策の1つは、upstartに切り替えることです。私はそのオプションを本当の解決策とは考えていません。確かに長期的にはそうではありません。

問題に対する実際の解決策(私見)は、MongodDBを起動するsystemdスクリプトを作成することです。残念ながら、MongoDBのスタッフはまだ提供していませんでした。

だから、私は最初から書いた。独自の1つを作成するには、次の手順に従います。

  1. を使用してルートに切り替えます
    須藤su 
    

または、以下のすべてのステップでSudoを使用します。

  1. サービススクリプトを作成します(この例では、サービスの名前はMongodbです)。

     nano /lib/systemd/system/mongodb.service
    
  2. ファイルの内容は

     [Unit] 
     Description = MongoDB Database Service 
     Wants = network.target 
     After = network.target 
     
     [Service ] 
     ExecStart =/usr/bin/mongod --config /etc/mongod.conf
    ExecReload=/bin/kill -HUP $ MAINPID 
     Restart = always 
     User = mongodb 
     Group = mongodb 
     StandardOutput = syslog 
     StandardError = syslog 
     
     [インストール] 
     WantedBy = multi- user.target 
    

ここからファイルをダウンロードすることもできます: mongodb.service
重要なフィールドの簡単な説明を次に示します。
ExecStart -実行するコマンドです。 Mongoは/ usr/binに自身をインストールし、構成ファイルは/ etcに書き込まれます
ユーザー -mongodプロセスのuid。
グループ -mongodプロセスのgid。ユーザーとグループはインストールによって作成されることに注意してください。

次に、mongodbを起動します。

Sudo systemctl start mongodb

Mongodbサービスの使用を停止するには:

Sudo systemctl stop mongodb

起動時にmongodbを有効にするには

Sudo systemctl enable mongodb.service

サービスを更新する必要がある場合は、次を使用します。

 Sudo systemctl daemon-reload
77
Sagi Forbes

MongoDBの最新バージョンは、現時点では1つのことを除いてほとんどのことを実行します。 MongoDBUbuntu 16.04.xにインストールした後、次のようにコマンドを実行します。

$ Sudo systemctl enable mongod.service
$ Sudo systemctl daemon-reload

現在、ほとんどの場合、mongodはすべてのブートで自動的に起動します。


この解決策は、このエラーが発生した場合にも機能します。

Mongod.serviceの開始に失敗しました:ユニットmongod.serviceが見つかりません。

上記のコマンドを実行すると、以下のコマンドが機能し始めます。

$ Sudo service mongod start
$ mongo

同様に、インストールするすべてのサービスを実行できるようにする必要があります。たとえば、Ops Manager(a.k.a MMS)のインストール後、ドキュメントには以下の表彰を実行するように記載されています。

$ sudo systemctl start mongodb-mms.service

ほとんどの場合、Ubuntuはサービスを開始しません。まだ有効になっていないためです。有効にするには、以下のコマンドを実行するだけです:

$ Sudo systemctl enable mongodb-mms.service
$ Sudo systemctl daemon-reload

次に、サービスを開始してみてください。

$ Sudo systemctl enable mongodb-mms.service

それで全部です...

35
efkan

新規インストールが必要な人向け

私はこれに1時間苦労しています。そして、私は見つけました このページ インストールは簡単です:

Sudo apt-get update
Sudo apt-get install mongodb

次に、すべてが機能するかどうかを確認します。

Sudo service mongodb status

これがあなたのために働くかどうか私に知らせてください!

23
Nicola Pedretti

3.2以降のパッケージには、upstartスクリプトが含まれています。

最初に、公式の インストール手順 に従います。

# If you installed the ubuntu package, remove it, if not skip to key import
Sudo apt-get remove mongodb
Sudo apt-get autoremove
# import key
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
Sudo apt-get update
# install the package
Sudo apt-get install -y mongodb-org

次に、mongodb.serviceジョブのマスクを解除します(そして、有効にして開始します)。パッケージには新興企業のジョブも含まれているため、マスクされていたと思われます。しかし、私たちの場合、これは明らかに私たちが望むものです。

Sudo systemctl unmask mongodb
Sudo service mongod start

参照:

関連するJIRAの問題

buntuに関連する質問

20
Hut8
Sudo systemctl start mongod

ubuntu Linux 16.04で私のために働いたものです

0
Saunved Mutalik