I encountered a problem with openldap-2.4.40 on debian when a vm crashed. Upon restore i could not start slapd service. But typing slapd on the command line would start slapd. I tried defining the urls, and tried defining the configuration directory with the slapd command, however that only resulted in the same error.
After extensive searching i could only find one reference to the error "daemon: bind(11) failed errno=2 (No such file or directory)". and that was leading me in the direction of the directory /var/run/ldap didnt have the right permissions, but it was there and had openldap owner and group. I spent a number of hours double checking directories making sure everything was there and had the right permissions.
I finally found /var/run/slapd was missing! A file called ldapi is created there on startup.
What is /var/run/slapd/ldapi ??
And what does it do?
For future reference what is bind(11) referring to? Where can i find the reference to error codes?
Thanks for your help,
Alan Lukens
Identity Management Specialist
University of Massachusetts Amherst, IT NSS
voice: 413.545.1654
email: alan.lukens@umass.edu
On Tue, Aug 07, 2018 at 01:32:26PM +0000, Alan Lukens wrote:
After extensive searching i could only find one reference to the error "daemon: bind(11) failed errno=2 (No such file or directory)". and that was leading me in the direction of the directory /var/run/ldap didnt have the right permissions, but it was there and had openldap owner and group. I spent a number of hours double checking directories making sure everything was there and had the right permissions.
I finally found /var/run/slapd was missing!
Are you running the Debian slapd package? The init script creates that directory automatically as one of the first actions in start_slapd() so I'm not sure why this happened to you. If you learn any more about how this happened I'd be interested in receiving a bug report in the Debian bug tracker. (Note that init scripts are distributors' responsibility and not in scope of the OpenLDAP project.)
What is /var/run/slapd/ldapi ??
And what does it do?
It is the UNIX socket used by the ldapi:// protocol, which is more efficient than TCP when the client and server are on the same system, and also offers the ability to use the client process' uid/gid for access control.
For future reference what is bind(11) referring to? Where can i find the reference to error codes?
11 is probably the file descriptor number of the ldapi socket within that slapd process. As for the error code (errno=2), the values are defined in the errno.h header and the errno(1) command can be used to list and query the values:
https://manpages.debian.org/stretch/moreutils/errno.1.en.html
openldap-technical@openldap.org