組み込みLinuxを実行しているデバイスの起動に問題があります。私のシステムサービスは一部のパーティションがマウントされる前に実行されますが、これは許可されていません。
インストールリストを一覧表示し、systemctl list-units --type=mount
.mountファイルを見ました。
私のシステムサービスファイルで、そのサービスがインストールされるのを待つように修正しました。たとえば、私のマウントはopt-abc.mount
両方を使用しており、マウントされるのを待っています。opt-def.mount
After
Requires
しかし、この目標を達成するための最善の方法についてはさまざまな意見があります。RequiresMountsFor=
、サイレントインストールではないため、このオプションを使用しないことをお勧めします。
これに対する助けや経験があれば、大変感謝いたします。
私のサービスファイルの単位セクションは次のとおりです。
[Unit]
Description=My service
After=opt-abc.mount
After=opt-def.mount
Requires=opt-abc.mount
Requires=opt-def.mount
答え1
まず、After =とRequires =の両方がスペースで区切られたセルのリストを取得します。したがって、複数の作業は必要ありません(さらに、意図しない結果が生じる可能性があると思います)。
次に、After=とRequires=の違いです。確認してみてくださいhttps://www.freedesktop.org/software/systemd/man/systemd.unit.html手動。簡単に言えば、Requires =は依存関係を構築するために使用されます。 After= は実行順序です。
私はAfter =だけが必要だと思います。マウント対象はfstabまたは他のものによって生成された可能性があることに注意してください。 Requires=で生成された単位を使用するのは悪い習慣のようです。