Date: Tue, 21 Jul 2009 12:08:18 -0400 From: Jerry McAllister <jerrymc@msu.edu> To: chris scott <kraduk@googlemail.com> Cc: freebsd-questions@freebsd.org Subject: Re: backticks in rc.conf Message-ID: <20090721160818.GA4054@gizmo.acns.msu.edu> In-Reply-To: <d36406630907210424p3e9e77c8tf12ab26da0573c89@mail.gmail.com> References: <d36406630907210146m4e84c7dbpd55776168a50090c@mail.gmail.com> <20090721112920.c174849b.freebsd@edvax.de> <87ljmi1dyq.fsf@kobe.laptop> <d36406630907210424p3e9e77c8tf12ab26da0573c89@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 21, 2009 at 12:24:09PM +0100, chris scott wrote: > 2009/7/21 Giorgos Keramidas <keramida@ceid.upatras.gr> > > > On Tue, 21 Jul 2009 11:29:20 +0200, Polytropon <freebsd@edvax.de> wrote: > > > On Tue, 21 Jul 2009 09:46:47 +0100, chris scott <kraduk@googlemail.com> > > wrote: > > >> can i use backticks in rc.conf? > > > > > > Basically, yes. The /etc/rc.conf file is run through sh, it is > > > a shell script that assigns values to variables, but can (ab)use > > > it to execute programs. > > > > > >> rsyncd_flags="--config=/etc/rsyncd.conf --address="` ifconfig bce1 | > > grep > > >> inet | awk '{print $2}'` > > >> > > >> it works fine from the shell, however on reboot the address section > > doesnt > > >> expand, or rather it goes blank > > > > > > You should use the full pathnames leading to ifconfig, grep, and awk. > > > Make sure they are accessible when rc.conf is "executed". > > > > There's a catch here that may go unnoticed for a while... > > > > rc.conf may be sourced by /etc/rc *long* before filesystems are > > mounted. As a result grep or awk may be not be available and stop > > rc.conf from loading. > > > > It's probably a good idea to: > > > > * Add a special rsyncd_bind_address variable that is handled in > > `/usr/local/etc/rc.d/rsyncd' itself > > > > * Permit "AUTO" as the value of ${rsyncd_bind_address} and do the > > smart thing there. > > > > * Edit `/usr/local/etc/rc.d/rsyncd' to add a dependency for the > > "NETWORKING" and "FILESYSTEMS" special names, so that `rc.d/rsyncd' > > runs only after networking is up and /usr or other late-mounted > > filesystems have finished loading. > > > > thanks for the advice but I've found a solution (see below). > > My systems dont generally have a /usr slice as i like to keep all the os in > one place, having a slice for /usr/local. /var, /home, and /tmp so the late > fs isnt an issue for me. Probably you mean a /usr partition - which is a division of a slice. Generally, since there are only 4 slices available, they are not used to divide the disk for mountable file systems, but rather are used for major divisions such as if you have more than one OS sharing the disk. The the FreeBSD slice can be further divided into partitions. Note, that confusion occurs here often as MS uses the terminology differently. The primary divisions that FreeBSD calls slices, they call primary partitions. ////jerry > > My latest test builds are pure zfs so wont be an issue there either 8) > > a=`echo $ifconfig_bge0 | /usr/bin/awk '{ for ( i=1 ; i <= NF; i++) { if ( $i > ~ /[iI][nN][eE][tT]/ ) { sub(/\/.*/,"", $(i+1)); print $(i+1) } } }'` > rsyncd_flags="--config=/etc/rsyncd.conf --address=$a" > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090721160818.GA4054>