Ubuntu 16.04 LTSでMongodbをサービスとして実行するにはどうすればよいですか?数日前、サーバーをUbuntu 16.04にアップグレードしました。再起動してもMongoDBサービスが開始されないことに気付きました。使用してみる
Sudo initctl start mongod
トリックをしませんでした。誰もこれを解決する方法を知っていますか?
Ubuntu 16.04(Ubuntu Xenial xerusとも呼ばれる)をアップグレードまたはインストールした人は、古いサービスの一部が実行を停止したことに気付きました。この問題はバージョン15.04から既知ですが、上記のバージョンに焦点を当てます。
私のMongoDBの場合はそうでした。簡単に言えば、Ubuntuは新興企業からsystemdに移行しました。これらの問題に対する一般的な解決策の1つは、upstartに切り替えることです。私はそのオプションを本当の解決策とは考えていません。確かに長期的にはそうではありません。
問題に対する実際の解決策(私見)は、MongodDBを起動するsystemdスクリプトを作成することです。残念ながら、MongoDBのスタッフはまだ提供していませんでした。
だから、私は最初から書いた。独自の1つを作成するには、次の手順に従います。
須藤su
または、以下のすべてのステップでSudoを使用します。
サービススクリプトを作成します(この例では、サービスの名前はMongodbです)。
nano /lib/systemd/system/mongodb.service
ファイルの内容は
[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
MongoDBの最新バージョンは、現時点では1つのことを除いてほとんどのことを実行します。 MongoDB
をUbuntu 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
それで全部です...
私はこれに1時間苦労しています。そして、私は見つけました このページ インストールは簡単です:
Sudo apt-get update
Sudo apt-get install mongodb
次に、すべてが機能するかどうかを確認します。
Sudo service mongodb status
これがあなたのために働くかどうか私に知らせてください!
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
参照:
Sudo systemctl start mongod
ubuntu Linux 16.04で私のために働いたものです