One thing you can do is check every few seconds to see if the script has
completed.
You could, for example, have bind9 remove a blocking file when it is
starting, and recreate it when it is done (or vice versa). Have your
later script check for the existence of the file when it starts.
It's also a good thing to put a timeout into the loop, so that you don't
block permanently.
I have a script snippet that does something similar. It checks to see if
pump has assigned an IP address in the wanted subnet, and then uses that
address if it is assigned (or times out after 8 attempts).
In this case, you can use the value of $emsg to decide what to do after
this loop (I just print it).
The question for success here is whether the read gets enough words to
fill 'num' with the
last octet of the IP address from 'ifconfig -a'
--
# the network address:
NETIP=192.168.211
dmsg="waiting for dhcp"
emsg="-n ''"
for i in 1 2 3 4 5 6 7 8 splat ; do
read a b c d num remaining <<-EOF
` ifconfig -a | grep inet | grep -F $NETIP | tr . ' ' `
EOF
if [ -n "$num" ] ; then
[[ -z "$emsg" ]] && emsg="-n" || emsg=" done! "
netpart=$b.$c.$d
subnet=$d
break
else
echo -n "$dmsg "
dmsg=" ... "
emsg=" timeout!"
[ "splat" = "$i" ] || sleep 5
fi
done
echo $emsg "<$num>"
exit
========================
LEE, Yui-wah (Clement) wrote:
Hi,
What is a clean way to introduce a delay between the
scripts in /etc/init.d ?
I saw a problem that /etc/rc2.d/S27bind9 started before
/etc/rc2.d/S25ifplugd actually completed all the tasks
...
Specifically, ifplugd, with the help of resolvconf,
would generate the file /var/run/bind/named.options,
which would be used by bind9. Unfortunately by the
time bind9 ran, the file was not yet generated.
I could force a delay between the two scripts by
introducing another script (run at S26) that does
nothing but sleep for a fixed time (30 seconds). That
seemed to work around the problem. But I wonder if
there is a cleaner solution.
Ideally, the delay should not be fixed but dynamic.
That is, a later script can have some means to know for
sure that an earlier script has completed all the tasks
already.
--
Stephen Samuel +1(778)861-7641 [EMAIL PROTECTED]
http://www.bcgreen.com/
Powerful committed communication. Transformation touching
the jewel within each person and bringing it to light.
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]