Forgot to CC the list on this one. Steve had another good idea, and
reports success with it: manually specifying the directory server in
Directory Access' search order.
Le 8 sept. 05 à 21:00, Steve St. Marie a écrit :
I've got Tiger clients (wired) where I have the exact same issue.
The login window (lists of users) does not show up until I log in
as admin and then logout. The client will be fine until the next
restart when only the "Name" and "Password" login window appears. I
had the same issue with my Panther schools and fixed them by
editing the StartupParameters.plist file like mentioned below.
I was happy to finally see a mention of how to fix the same issue
on a Tiger client but I searched the archives and couldn't find
anything on "rc.local" or "launchd". Can anyone elaborate on what
steps I need to take to correct this slow login window on my Tiger
clients?
In Tiger, launchd takes over a lot of SystemStarter's functionality,
including the launching of loginwindow, thus there is no longer a
StartupParameters.plist in which the prerequisites for loginwindow
can be manually specified.
However it appears that launchd waits until /etc/rc has completed
before launching loginwindow, which provides a mechanism for delaying
loginwindow until the network has come up. Since /etc/rc calls /etc/
rc.local near its end, you should be able to stuff some code into /
etc/rc.local that simply waits until you have a valid IP (with some
timeout, of course), which will have the effect that loginwindow
won't appear too early.
Try something like this in your rc.local (untested):
#!/bin/sh
time_waited=0
time_to_wait=20
test=`ifconfig -a inet 2>/dev/null | sed -ne '/127.0.0.1/d' -e '/
0.0.0.0/d' -e '/inet/p' | wc -l`
until [ "$test" -gt 0 -o "$time_waited" -ge "$time_to_wait" ]; do
sleep 1
time_waited=`expr "$time_waited" + 1`
test=`ifconfig -a inet 2>/dev/null | sed -ne '/127.0.0.1/d' -e '/
0.0.0.0/d' -e '/inet/p' | wc -l`
done
[ "$test" -gt 0 ] || logger -sp user.error -t rc.local "Timed out
waiting for network!"
If you still have problems, it could be that you have an IP when
loginwindow appears but can't resolve the name of your directory
server. In that case you could specify your server by IP or replace
the test condition above with a DNS lookup of your server using one
of host, lookupd, dig, &c.