ファイルシステムのマウント前にサービスが開始されます。

ファイルシステムのマウント前にサービスが開始されます。

システムエキスパートの皆さん、

私はCubietruck A20システムを持っており、Armbianカーネルは4.19.62で、残りのパッケージはDebian 10 Buster armhfからインポートされ、systemdは241-7〜deb10u2です。

ブートmicroSDカードの摩耗を防ぐために、USB接続HDD(WD5000BMVW、Western Digital Elements / My Passport(USB))にLVM2ボリュームグループを作成し、このVGのLVに複数のext4ファイルシステムを作成して保存/ var / lib、 /var/log、一部/var/spool/*、/var/cacheなど

これらのファイルシステムはすべて/ etc / fstabに正しく文書化されており、システムの起動時にマウントされます。

ただし、一部のサービスは、起動前にインストールされるこれらのファイルシステムに依存します。部品はバインディング9(ネームド)とイカ(squid3)です。次の再起動後、これらのサービスは、そのファイルシステムがマウントされアクセスされたときよりも早く開始されたことがわかりました。

だから、いくつかのシステムの専門家に尋ね、彼らは「systemctl edit」を実行し、これらのサービスに.mount依存関係を追加してください」と言いました。次の内容でバインド9とイカ用のオーバーレイファイルを追加しました。

# /etc/systemd/system/squid.service.d/override.conf
[Unit]
Requires=var-log.mount var-spool-squid3.mount
After=var-log.mount var-spool-squid3.mount

そして

# /etc/systemd/system/bind9.service.d/override.conf
[Unit]
Requires=var-lib.mount var-cache.mount
After=var-lib.mount var-cache.mount

これは役に立ちません。それ以外の場合は質問しません。 "systemctl list-units"出力からこれらの.mount名を取得し、RequiresとAfterを個別にそして一緒に試したことを確認できます。

"journalctl -b"では、Binding 9とsquid .servicesが非常に早く起動し、わずか数秒後にUSBブロックデバイス(sda)が見つかり、lvm pvscanを実行してLVが有効化されマウントされていることを非常に明確に知ることができます。 。だから私はbin9&squid .serviceを起動しようとしたときにこれらの.mountユニットが存在しないと仮定します。

だから私の質問は、どのように適切にルートFSからユニットファイルを読み取り、依存関係でソートされてから数秒後にいくつかの強制起動時にファイルシステムが見つかったときにこの依存関係を指定しますか?

役に立つ回答ありがとうございます。

ベストアンサー1

おすすめ記事