ネットワーク設定を保存するいくつかのマウントを設定する必要がある新しいサービス(Debian Jessieの下)を設定しようとしています。したがって、サービスは次のようになります。十分Networking.serviceが起動する前。
私は以下を試しました:
[Unit]
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
#Before=network-pre.target
Before=networking.service
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=networking.service
以下を使用すると、systemd-analyze plot
サービスが開始されますが、networking.service
約3秒早く開始されることがわかります。
明らかに私の設定は間違っていますが、問題を見つけるのに苦労しています。どんな助けにも感謝します。
修正する
local-fs.target
現在、次の代わりに以前に開始されるようにサービス構成を変更して、networking.service
この問題を解決してください。
[Unit]
DefaultDependencies=no
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
Before=local-fs.target
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=local-fs.target
しかし、なぜ最初の設定が期待どおりに機能しないのか知りたいのですが…?
ベストアンサー1
network-pre.targetは、ネットワークインターフェイスが設定される前にサービスを注文するために使用できるターゲットです。主な目的は、ネットワークインターフェイスが起動する前にファイアウォールを設定したいファイアウォールサービスで使用することです。これは受動的なデバイスです。直接起動できず、ネットワーク管理サービスではなく、以前に実行したいサービスを介して取得します。
network-pre.target
ネットワークが起動する前にいくつかの設定を実行するには、以下を使用する必要があります。
ネットワークが構成される前に実行するサービスは、Before = network-pre.targetと入力し、Wants = network-pre.targetを設定してインポートする必要があります。
[Unit]
これを次のセクションに入れる必要があります。
Before=network-pre.target
Wants=network-pre.target