Denis Vlasenko escribió:
> On Wednesday 16 May 2007 12:40, Ignacio García Pérez wrote:
>
>> Hi,
>>
>> I have a small but quite annoying problem for which I can't find a
>> "good" solution. My setup is full custom, and I'm using udevd with a
>> custom set of rules. Things like this:
>>
>>
>>
>> ACTION=="add", SUBSYSTEM=="net", \
>> RUN+="/sbin/ifup $env{INTERFACE}"
>>
>>
>>
>> The problem is that when udevd runs /sbin/ifup, it does not pass a valid
>> PATH environment variable. Since ifup actually calls several external
>> programs (ifconfig, ip, route, etc), if the PATH is not correctly set,
>> they won't be found and ifup will fail miserably.
>>
>> Here's the solution I'm using right now:
>>
>>
>>
>> ACTION=="add", SUBSYSTEM=="net", \
>> ENV{PATH}="/sbin:/bin:/usr/sbin:/usr/bin", \
>> RUN+="/sbin/ifup $env{INTERFACE}"
>>
>>
>>
>> And yeah, works fine, but I must add the "ENV{PATH}=" directive on each
>> and every udev rule that runs a program, and that is far from a good
>> solution (plus bloats the rules files a lot).
>>
>> Anyone with a broader perspective can suggest a better solution?
>>
>
> Start udevd with PATH set:
>
> PATH=/sbin:/bin:/usr/sbin:/usr/bin udevd ...
>
Actually, udevd is started from /etc/init.d/rcS and I've verified (via a
simple echo $PATH) that the PATH is properly set.
> I just grepped thru udev-084 sources. It doesn't seem to try to unset the
> PATH.
> So it's children most likely will inherit it.
> --
> vda
>
>
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox