Ubuntu 16.04(Ubuntu Xenial xerusとも呼ばれます)をアップグレードまたはインストールした人は、古いサービスの一部が実行を停止したことに気づきました。この問題はバージョン15.04からわかっていますが、上記のバージョンに焦点を当てます。
これがMongoDBの私の場合でした。簡単に言うと、Ubuntuはupstartからsystemdに移行しました。これらの問題に対する一般的な解決策の1つは、upstartに戻すことです。私はそのオプションを実際の解決策とは考えていません。確かに長期的にはそうではありません。
この問題の実際の解決策(IMHO)は、MongodDBを起動するsystemdスクリプトを作成することです。残念ながら、MongoDBの担当者はまだ提供していませんでした。
だから私は一から書く必要がありました。独自のいずれかを作成するには、次の手順に従います。
-
sudo su
を使用してrootに切り替えます
または、次のすべての手順で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 [Install] WantedBy=multi-user.target
こちらからファイルをダウンロードすることもできます: mongodb.service
重要なフィールドの簡単な説明は次のとおりです。
ExecStart -実行するコマンドです。 Mongoは/usr/ binの下にインストールされ、構成ファイルは/ etc
ユーザーに書き込まれます。 -mongodプロセスのuid。
グループ -モンゴッドプロセスのギッド。ユーザーとグループはインストールによって作成されることに注意してください。
ここでmongodbを開始します:
sudo systemctl start mongodb
mongodbサービスの使用を停止するには:
sudo systemctl stop mongodb
起動時にmongodbを有効にするには
sudo systemctl enable mongodb.service
サービスを更新する必要がある場合は、次を使用してください:
sudo systemctl daemon-reload