Debian Jessieでシステムサービスを作成しようとしています。network-online.target
到着するとすぐに始める必要があります。
インターフェイスがまだ設定されておらず、DHCPクエリが始まったばかりの問題がnetwork-online.target
同時に発生しました。network.target
この問題は、古いネットワーク構成を使用しているDebianに固有のようです。
この問題を迂回する方法や動作させる方法は何ですかnetwork-online.target
?
ベストアンサー1
を使用しているため、/etc/network/interfaces
各インターフェイスの状態を監視するにはsystemdサービスが必要です。利用可能であることを確認してください(Ubuntu 15.04のパッケージからインストールされます/lib/systemd/system/ifup-wait-all-auto.service
)。ifupdown
そうでない場合は、/etc/systemd/system/ifup-wait-all-auto.service
次のように作成して貼り付けます。
[Unit]
Description=Wait for all "auto" /etc/network/interfaces to be up for network-online.target
Documentation=man:interfaces(5) man:ifup(8)
DefaultDependencies=no
After=local-fs.target
Before=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutStartSec=2min
ExecStart=/bin/sh -ec '\
for i in $(ifquery --list --exclude lo --allow auto); do INTERFACES="$INTERFACES$i "; done; \
[ -n "$INTERFACES" ] || exit 0; \
while ! ifquery --state $INTERFACES >/dev/null; do sleep 1; done; \
for i in $INTERFACES; do while [ -e /run/network/ifup-$i.pid ]; do sleep 0.2; done; done'
[Install]
WantedBy=network-online.target
Ubuntu 15.04システムに存在するサービスファイルですが、[Install]
作業をより簡単にするためのセクションが追加されました。 Ubuntu 15.04の動作がifup
Debian Jessieの動作と同じであることを望みます。ifup
そうでない場合は、いくつかの修正が必要です(特に最後の行)。
それからsudo systemctl enable ifup-wait-all-auto.service
。コンピュータを再起動したら、network-online.target
(少なくとも)インターフェイスを起動してから到達したことを確認する必要があります。