Maybe you are running ldap as a non-privileged user that cannot write to /var/run? Try creating something like /var/run/slapd, owned by the user under which slapd runs, and change pidfile do /var/run/slapd/slapd.pid. Maybe this helps.
I thought about this. Im running OpenLDAP 2.0.27 on Red Hat 7.3.
I was stopping and starting LDAP by using the rc. scripts.
One thing I noticed is that the slapd.log is owned by user 'ldap.' in /var/log. I'm not sure if the .pid needs to be owned by ldap. If so, I guess I should go with what you suggested?
I appreciate it.