[Buildroot] [PATCH 1/1] openldap: add support to build the server

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Jan 12 21:09:27 UTC 2016


Andreas,

On Tue, 12 Jan 2016 22:02:28 +0100, Andreas Ehmanns wrote:

> I reworked the patch and incorporated your findings. Please have a look 
> at my comments below and let me know what you think.

Thanks! See below my comments.


> > If you fix this, then the path to the pidfile (and argsfile) in
> > slapd.conf are wrong, because they point to /var/run/, to which the
> > ldap user has not write access.
> >
> > If you fix this again, when you start slapd, it complains:
> >
> > bdb_db_open: warning - no DB_CONFIG file found in
> > directory /var/openldap-data: (2). Expect poor performance for suffix
> > "dc=my-domain,dc=com".
> >
> > It should probably be fixed by using DB_CONFIG.example as DB_CONFIG
> > in /var/openldap-data/.
> My aim was to add the OpenLDAP server as provided by the package and 
> only make the changes necessary to allow the server to start up without 
> terminating.
> slapd.conf is the default configuration provided by the package which is 
> a good starting point for people to setup their own configuration and 
> database. Of course everyone using the LDAP server has to make its own 
> configuration and database setup but this can't be provided or 
> preconfigured by buildroot.

Right, but in general we try in Buildroot to provide a sane/minimal
default configuration that "works" out of the box. It is a bit weird to
have such a warning when the slapd daemon starts. But OK, it's not a
very big issue either, we can always leave it as it is for now for this
aspect.

> > 	-p /var/run/slapd/slapd.pid
> Slapd manages its own pid file. Why should start-stop-daemon create an 
> additional pid file

start-stop-daemon will not create an additional pid file with just the
-p option. Only if you pass the -m option in addition to -p. With -p,
start-stop-daemon will only verify that the process has created the pid
file. From the start-stop-daemon manpage:

       -p, --pidfile pid-file
              Check  whether  a  process  has created the file pid-file. Note:
              using this matching option alone  might  cause  unintended  pro‐
              cesses  to  be  acted  on, if the old process terminated without
              being able to remove the pid-file.

       -m, --make-pidfile
              Used  when  starting  a program that does not create its own pid
              file. This option will make start-stop-daemon  create  the  file
              referenced  with --pidfile and place the pid into it just before
              executing the process. Note, the file will only be removed  when
              stopping  the  program  if --remove-pidfile is used.  Note: This
              feature may not work in all cases. Most notably when the program
              being  executed forks from its main process. Because of this, it
              is usually only  useful  when  combined  with  the  --background
              option.

> > Why do you pass -n ? And why do you use -a instead of -x ?
> O.k., changed -a to -x
> I thought that I need -n to be able to do a kill when shutting down the 
> server when NOT using pid file from start-stop-daemon. This was my 
> understanding from other init scripts. Am I wrong?

If you specify -p, I think doing the name-based check with -n is useless.


> >> +        killall -HUP $(basename ${DAEMON})
> > I think it's better to use the pid file here, no?
> >
> > 	   kill -HUP $(cat /var/run/slapd/slapd.pid)
> See comment above. Slapd is managing its own pid file.

And? It doesn't prevent us from using it, right?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the buildroot mailing list