私は奇妙な問題に直面しました。
enp5s0
私は2つのネットワークインターフェイス(有線インターフェイス)とwlan0
(Wi-Fi)を備えたGentooを実行しています。たとえば、openvpn
スクリプト内でプログラムを実行しようとすると、次のような/etc/init.d
結果が出力されます。
* WARNING: openvpn is scheduled to start when net.enp5s0 has started
インターフェイスがenp5s0
動作していない場合、他のインターフェイスが動作していても、そのインターフェイスは動作しません。
には/etc/init.d/openvpn
次の行があります。
depend() {
need localmount net
use dns
after bootmisc
}
そして(実際には、Gentooが何をすべきかを理解するために処理するスクリプトの名前/etc/init.d/net.enp5s0
への/etc/init.d/net.wlan0
シンボリックリンク):/etc/init.d/net.lo
depend()
{
[...]
case "${IFACE}" in
lo|lo0) ;;
*)
after net.lo net.lo0 dbus
provide net
;;
esac
[...]
}
したがって、私が理解しているように、私のインターフェースのどれもnet
「能力」を提供し(正しい/正規の言葉はありません)、openvpn
特定のインターフェースではなくその機能にのみ依存する必要があります。依存関係があるすべてのプログラムで同じ問題が発生しますneed net
。
私がここで何を見逃しているのでしょうか?
uname -a
役に立つ場合は、私のコメントに従ってください。
Linux yavin 3.7.10-gentoo-r1 #2 SMP Sat Apr 20 16:27:52 CEST 2013 x86_64 Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz GenuineIntel GNU/Linux
ベストアンサー1
いいですね。設定ファイルのコメントを読むことが時々動作することがあります。
私の仮定は正確でした。net
複数のサービスが実際にこれを提供できるという点で、「仮想依存関係」として機能します。これは実際にマニュアルに文書化されています。http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=4。ただし、実際にはこれは設定可能であり、この動作はデフォルトではありません(少なくとも一度変更したことはありません)。
このファイルを使用して、初期化スクリプトの仕組みを/etc/rc.conf
カスタマイズできます。init
そこに興味深いオプションがあります。
# Do we allow any started service in the runlevel to satisfy the dependency
# or do we want all of them regardless of state? For example, if net.eth0
# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
# both will be started, but services that depend on 'net' will work if either
# one comes up. With rc_depend_strict="YES" we would require them both to
# come up.
#rc_depend_strict="YES"
ご覧のように、これは私が必要なものであり(私の観点から見ると)、誤った値にデフォルト値が設定されているだけです。このオプションを「いいえ」に設定すると問題が解決しました。
今後:
yavin ~ # /etc/init.d/openvpn ineed
* Caching service dependencies ... [ ok ]
fsck dmcrypt localmount sysfs net.wlan0 net.enp5s0
その後(この場合;そうであれば代わりにwlan0
使用したようです): enp5s0
wlan0
enp5s0
yavin ~ # /etc/init.d/openvpn ineed
* Caching service dependencies ... [ ok ]
fsck dmcrypt localmount sysfs net.wlan0