Is /etc/rc.conf scriptable?

Yue Wu vanopen at gmail.com
Thu Feb 3 13:30:08 UTC 2011


Sorry for late reply. Thank you for all kindly and useful help!

On Tue, Feb 01, 2011 at 01:57:10PM +0100, Paul Schenkeveld wrote:
> On Tue, Feb 01, 2011 at 08:35:06PM +0800, Yue Wu wrote:
> > Hi list,
> > 
> > I'm trying to do something to make rc.conf can act conditionally
> > 
> > What I want is:
> > 
> > 1. List the wireless access points,
> > 
> > grep if there is one which bssid is 'bb:bb:bb:bb:bb:bb',
> > 
> > if there is, then set ifconfig_wlan0 to the value:
> > 
> >     "inet 192.168.1.111 netmask 255.255.255.0 WPA"
> > 
> > 2. check if bitlbee has been installed, if so, then let bitlbee
> > service start.
> > 
> > 
> > So I tried with following settings in rc.conf, but all of them failed,
> > i.e., the networking can't be connected and bitlbee service doesn't
> > run.
> > 
> > /etc/rc.conf
> > 
> > if ifconfig wlan0 list scan 2>/dev/null | grep -q 'bb:bb:bb:bb:bb:bb' >/dev/null 2>&1; then
> >     ifconfig_wlan0="inet 192.168.1.111 netmask 255.255.255.0 WPA"
> > fi
> > if [ -x /usr/local/sbin/bitlbee ]; then
> >     bitlbee_enable="YES"
> > fi
> 
> /etc/rc.conf is scriptable (unless you are also using a dashboard or
> other software that wants to interpret/update /etc/rc.conf).
> 
> Your problem here is that rc.conf is read (and executed) before wlan0
> gets created.  After creation of an interface, /etc/start_if.<interface>
> is called, perhaps you could use that but keep in mind it's run just
> after creation of the interface so if you use it for wlan0 and need the
> output of a station scan you should use ifconfig wlan0 scan instead of
> ifconfig wlan0 list scan.  This may take some time during which your
> boot process is stalled.

Thanks for detailed explanation, I get it, I think I should learn more
to get familiar with BSD's boot process before trying to do such
things by myself.

> 
> > My question is, how to achieve what I want? The simpler, the better :)
> 
> Otherwise, perhaps devd could help you to run your script asynchronously
> after wlan0 is created.
> 

-- 
Regards,
Yue Wu

Key Laboratory of Modern Chinese Medicines
Department of Traditional Chinese Medicine
China Pharmaceutical University
No.24, Tongjia Xiang Street, Nanjing 210009, China


More information about the freebsd-stable mailing list