私はLinuxの世界ではまったく新しいので、間違ったことを言ってすみません。
Debian 8.5マシンでMongo DBを実行しようとしています。パッケージ(percona.comから事前にビルドされた)をインストールしたとき、次のファイルに気付きました。
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
/etc/init.d/mongodについて
私はこれがupdate-rc.d
ブート/他の特定のシステム状態で(を介して登録されている限り)呼び出されることを理解しています(これについて技術的になりたくない、私は多くの情報を吸収していますが、これはそれほど重要ではないようです)。
これは私にはまったく問題ありません。スクリプトは多くの初期化を行い、最終的にmongoデーモンを起動します。起動、停止、再起動などの「トリガー」があるようで、私が理解している限り、これらをトリガーできsudo service mongod <action>
ます。
/lib/systemd/system/mongod.serviceについて
このファイルは同じことを行うように見えます(つまり、mongoを実行します)が、構成が少なく、ExecStartパラメーターの1行だけです。
[Unit]
Description=MongoDB (High-performance, schema-free document-oriented database)
After=time-sync.target network.target
[Service]
Type=forking
User=mongod
Group=mongod
PermissionsStartOnly=true
EnvironmentFile=/etc/default/mongod
ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
PIDFile=/var/run/mongod.pid
[Install]
WantedBy=multi-user.target
私の知る限り、これはでトリガーできますsudo systemctl start mongod
。
これが起動時に呼び出されるかどうかはわかりません。
なぜこれらの「サービス」ファイルが2つ必要なのか、また1つ(おそらく/ lib / systemdの方がはるかに簡単なので)を削除する方法を理解できません。
2つの間に関係があるかどうかはわかりません。
私はそれ
systemctl
がinit.d
スクリプトでも機能することを読んだことがありますが、この場合、2つのファイルのどちらがによってトリガーされるのかわかりませんsystemctl mongod start
。
いくつかの冗長性があると思うので、2つの方法のいずれかを選択する必要があります。そして、私はそれがであることを確認したい
- 起動時に呼び出されます
- コマンドで呼び出し可能(
service
またはなどsystemctl
)。
私の心をきれいにするのを手伝ってもらえますか?いくつかのコメントの助けを借りて、おそらく質問に焦点を絞り、絞り込むことができます。
systemctl disable mongod
; その後、mongod.serviceの名前をmongod-backup.serviceに変更しました。その後systemctl daemon-reload
。これは正しいと思いますか?/ lib / systemd / system /内のファイルを変更しないでくださいと読みましたが、名前を変更せずに、systemctlはinit.dスクリプトを無視し続けました。