I do hope that Sue is not offended by the comparison! :-)
> It seems that while it's manipulating the routing table,
> something (perhaps gated itself) is trying to make connections through
> routes that don't exist. I assume you don't want to run pppd, so maybe
> just removing everything but "#!/bin/sh" from the request-route script
> would cause it to return, so gated can continue.
OK, but have a look at the script itself (attached below). There is no file
/etc/ppp/chat* on the machine, so the script should return immediately. The
lockup is indefinite, and your suggestion still doesn't explain why kerneld
doesn't reap its child. There must be a race/bug/deadlock somewhere.
Thanks,
Brian.
----- 8< -----------------------------------------------------------------
#! /bin/sh
LOCK=/tmp/request-route
PATH=/usr/sbin:$PATH # for ppp-2.2*
export PATH
# Note: you are _not_ forced to use ppp!
# You can do whatever you want in order to satisfy the kernel route request.
# It might be a good idea to set up the route as the default route, in case
# you are using e.g. slip or plip or any other net driver...
#
# This script will be called from kerneld with the requested route as $1
# Create a chat script for your nameserver (as defined in /etc/resolv.conf)
#
chatfile=/etc/ppp/chat.$1
if [ -f $chatfile ]
then
#
# Tune your favourite parameters to pppd, including the idle-disconnect option.
# Kerneld will be automatically triggered to load slhc.o and ppp.o
#
pppd connect "chat -f $chatfile" /dev/modem 38400 \
idle-disconnect 600 modem defaultroute noipdefault \
& # let pppd detach itself whenever it wants to...
#
# Timer to be killed by ip-up, tunable! Check kerneld delay as well
#
sleep 60 &
sleepid=$!
echo $sleepid > $LOCK
wait $sleepid
rm -f $LOCK
exit 0
else
exit 1
fi