Leon Keijser wrote:
[snip]
/etc/init.d/ldirectord: line 59: 25382 Alarm clock $@
Right... so because you're running in debug mode the init script never
exits, which is useful as it lets us see that it's an un-handled (or
incorrectly set) SIGALRM which is tripping ldirectord up - the "line 59"
in the init script is:
case "$1" in
start)
...
stop)
...
etc.
esac
In the non-debug case you'd not get that error as the init script would
allow the child process to fork away and manage itself.
So... you're using method "connect". That suggests to me (not being
massively over-familiar with ldirectord...) that the "check_connect"
routine contains some sort of condition whereby the alarm handler is
set, an alarm timer according to connect timeout is started, the
connection fails (and therefore the block being 'eval'led dies) but the
alarm timer is never reset with an alarm(0).
Problem being (bearing in mind I'm looking at latest CVS version) I
cannot for the life of me work out how that would be the case. As far as
I can tell the eval block in that subroutine will die upon a connection
failure, which means the signal handlers *and* the alarm timer should
all simply go away.
Are you running an old version of ldirectord? Can you grab the version
string by running "ldirectord -v"?
Graeme
|