[Date Prev][Date Next]
Re: why not support refresh config file?
When I change loglevel in slapd.conf,I exec "kill -HUP slapd's
pid",then slapd exit.
That is what the HUP signal is used for in slapd. It can optionally be
configured to wait for active connections to complete before
terminating. By the way, in general, it is a bad idea to send a signal
to a process if you haven't read the documentation that tells you what
signals are supported and what their effects are.
Did openldap support refresh config file?
Apparently not. Although you can certainly gain this effect if you use a
parent manager process that automatically respawns slapd if it exits due
to a SIGHUP.
I watch the code and found that openldap don't support it.
I think it is easy to support it:
when slapd receive HUP sig,it call function "read_config" to reread
config,am I right?
That is the function that loads the configuration at startup time, yes,
but it is far more complicated to refresh than just rereading the config
file. If any configuration items have been removed since the last time
the config file was read, all the associated data structures must be
located and safely deleted from memory. This is nearly impossible in
many cases. If we simply destroy all data structures and recreate them
all, that is still a lot of work and it is easier just to terminate the
process and start a new one. If you do not wish to terminate the
process, because there are active connections, it's an even worse
problem because those connections may be actively using the config data
that you are destroying and recreating. So in short, refreshing the
entire config file without just restarting the server is a really bad
idea, and next to impossible to do correctly.
Eventually OpenLDAP 2.3 will be available with full LDAP access to the
slapd configuration, in which case you can just issue an LDAPmodify
request to change little things like loglevel and such. That will
eliminate any need for a "refresh" feature.
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
Symas: Premier OpenSource Development and Support