My setup: I have net.eth0 which is wired ethernet. net.eth0 is in default runlevel and it uses netplugd. I rarely have an ethernet cable plugged in. I also have net.eth3 which is USB-WLAN. It's not in a runlevel. It gets hotplugged on plugin or coldplugged during boot and is running most of the time. At this moment in time: eth0 is running because its in the runlevel, but there is no cable plugged in. eth3 is running and associated to my network and I'm online as normal. The problem is that openvpn refuses to start. airbag dsd # /etc/init.d/net.eth3 status * status: started airbag dsd # rc-status Runlevel: default acpid [ started ] alsasound [ started ] hald [ started ] kexec [ started ] local [ started ] net.eth0 [ inactive ] netmount [ scheduled ] airbag dsd # /etc/init.d/openvpn.brontes start * WARNING: openvpn.brontes is scheduled to start when net.eth0 has * started. If I remove net.eth0 from the runlevel, the dep gets satisfied: airbag dsd # rc-update del net.eth0 * 'net.eth0' removed from the following runlevels: battery default airbag dsd # /etc/init.d/openvpn.brontes start Enter Private Key Password: * Starting openvpn.brontes ... [ ok ]
This is behaviour by design. The fact that net.eth0 is the only net service in the runlevel implies that only it can satisfy the net dependency. As you rely on hotplug starting net.eth3 then you should also rely on it starting net.eth0 by taking net.eth0 out of the runlevel. This means that either interface satisfies the dependency.