ifdown

David Henderson dhenderson at digital-pipe.com
Wed Jun 22 21:10:40 UTC 2011


On 06/22/2011 04:01 PM, Denys Vlasenko wrote:
> On Wednesday 22 June 2011 17:29, David Henderson wrote:
>> On 06/18/2011 04:48 AM, Denys Vlasenko wrote:
>>> On Thursday 16 June 2011 19:25, David Henderson wrote:
>>>> Hello everyone!  I'm working some more with the 'if*' commands and come
>>>> across an issue and wanted to ask about it here.  I have a script that
>>>> calls 'ifdown' for an adapter like: ifdown -f lan01&&   echo success ||
>>>> echo failure.  I noticed that it wasn't executing correctly so I
>>>> performed the step manually from the command line like:
>>>>
>>>> # ifdown lan01&&   echo success || echo failure
>>>> ifdown: interface lan01 not configured
>>>> success
>>> "ifdown lan01; echo $?" would be more informative here
>>>
>>>> # ifconfig
>>>> lan01     Link encap:Ethernet  HWaddr 00:27:0E:17:99:35
>>>>              inet addr:192.168.0.198  Bcast:192.168.0.255  Mask:255.255.255.0
>>>>              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>>>              RX packets:340 errors:0 dropped:0 overruns:0 frame:0
>>>>              TX packets:109 errors:0 dropped:0 overruns:0 carrier:0
>>>>              collisions:0 txqueuelen:100
>>>>              RX bytes:34257 (33.4 KiB)  TX bytes:15911 (15.5 KiB)
>>>>              Memory:d0d00000-d0d20000
>>>>
>>>> lo        Link encap:Local Loopback
>>>>              inet addr:127.0.0.1  Mask:255.0.0.0
>>>>              UP LOOPBACK RUNNING  MTU:16436  Metric:1
>>>>              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>>>              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>>>              collisions:0 txqueuelen:0
>>>>              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>>>>
>>>> I see two issues right off the top.  First, as you can see, the lan01
>>>> interface does exist but isn't seen by 'ifdown'
>>> ifdown checks iface state by looking into /var/run/ifstate.
>>> If you configured iface, say, by hand, ifdown will see nothing there
>>> and will think that "interface lan01 not configured".
>>>
>>> Whta is in your /var/run/ifstate and /etc/network/interfaces files?
>>>
>>>> and second, it's exit
>>>> status doesn't appear to be correct as it should have shown 'failure'
>>>> instead of 'success'.
>>> This is a bug _if_ standard ifdown does report failure in this case.
>>> Can you test standard tool behavior?
>>>
>> Thanks for the reply Denys.  I think I see where the problem lies - I
>> don't have a /var/run/ifstate file!  What binary creates this file?
> ifup and ifdown. (Although on some systmes they aren't binaries,
> they are scripts).
>

I'm assuming that since I don't call ifup, that might be why the file 
isn't being created...  Perhaps this could be created manually so ifdown 
can work?

>> I'm
>> not configuring the iface by hand, but with utilities such as ifplugd,
>> udhcp, and if* binaries.
> If you dont use ifup to up the iface, why do you use ifdown
> to deconfigure it?
>

Because the script takes into account disconnected interfaces and 
assigns a 169.254.x.x address, thus a call to ifdown.  With the problems 
experienced with the ifdown binary, a temporary (or permanent) work 
around is to use the ifconfig binary (which has no problems).

>> Also, the /etc/network/interfaces file does
>> get created in a script, but matches all the naming conventions and
>> works just fine.  Thoughts?
> You seem to be confused. /etc/network/interfaces should be edited by
> admin, not created by scripts.
>

Nope, no confusion.  /etc/network/interfaces is created dynamically by 
scripts which has actually produced less headache if NIC's are switched 
or configuration changes need to occur.  Sure beats the "by hand" way of 
doing it! :)

I guess at this point, we've realized that this doesn't appear to really 
be a bug since it's just a matter of a missing file.  And since none of 
the scripts call if the ifup command (which I guess is what creates the 
/var/run/ifstate file), I'll just have to continue to use the ifconfig 
work around.  Thanks for everyone's help!

Dave


More information about the busybox mailing list