运行SLAPD
slapd被设计为可以作为一个单独的服务器运行。这允许服务器充分的利用缓存,利用底层数据库的特性来管理并发,并且节省系统资源。从inetd(8)来运行slapd(8)不能作为选项。
1、 命令行选项
slapd(8)支持大量的命令行选项。它们在手册页中有详细的说明。本部分详细说明了几个常用的选项。
-f
该选项说明了可以为slapd使用的另外的配置文件。缺省选项是正常情况下的/usr/local/etc/openldap/slapd.conf。
-h
该选项说明了另外的侦听器配置。缺省的是ldap:///,它表示运行在TCP上的LDAP,在缺省的389端口侦听所有的网络界面。可以指明特殊的主机——端口对或者其他的协议模式(比如,ldaps://或者ldapi://)。例如:-h “ldaps:// ldap://127.0.0.1:666”将创建两个侦听器:一个在默认的LDAP/SSL的636端口,侦听所有网络界面上的通过SSL的LDAP请求,另一个在localhost(环回地址)界面上侦听666端口。主机可以使用IPV4的点分十进制格式,或者使用主机名称。端口必须是数字。
-n
该选项说明了用来进行日志记录或者其他用途的服务名称。默认的服务名称是slapd。
-l
该选项指明了用于syslog(8)应用的本地用户。可以是LOCAL0,LOCAL1,LOCAL2,……LOCAL7等数值。默认值是LOCAL4。该选项并不是在所有系统上都支持。
-u user -g group
该选项分别指明了用来运行的用户或者组的身份。User可以是用户名或者uid,group可以是组名或者gid。
-r directory
该选项指明了一个运行时的目录。slapd将在打开侦听器并且读取任何配置文件或者初始化任何后端数据库之前使用chroot(2)到该目录。
-d | ?
该选项设置slapd的调试级别为。当level是“?”的时候,无论传递给它任何选项,将打印不同的调试级别,然后slapd终止。当前的调试级别是:
Table 6.1: Debugging Levels | |
Level | Description |
-1 | enable all debugging |
0 | no debugging |
1 | trace function calls |
2 | debug packet handling |
4 | heavy trace debugging |
8 | connection management |
16 | print out packets sent and received |
32 | search filter processing |
64 | configuration file processing |
128 | access control list processing |
256 | stats log connections/operations/results |
512 | stats log entries sent |
1024 | print communication with shell backends |
2048 | print entry parsing debugging |
可以在调试选项中指定多个调试级别。每次指定一个。或者,因为调试级别是可以相加的,可以指定它们的和。比如,如果需要跟踪函数调用,并且查看正在处理的配置文件,可以设置该选项为:-d 65。或者,可以设定为:-d 1 –d 64。参阅获取更详细的信息。
注意:为了使得除了两个统计级别之外的调试信息生效,slapd必须在编译时定义_DLDAP_DEBUG。
2、 启动SLAPD
通常情况下,slapd可以以如下方式运行:
/usr/local/etc/libexec/slapd [
其中,/usr/local/etc/libexec是由configure脚本决定的,并且是上面描述的选项之一(或者是在slapd(8)中描述)。除非指明了一个调试级别(包括级别0),slapd将会自动fork一个进程,并且从控制它的终端脱离,在后台运行。
3、 停止SLAPD
为了安全的停止slapd,应该是用下面的命令:
kill -INT 'cat /usr/local/var/slapd.pid'
其中,/usr/local/var由configure脚本决定。(实际不好用,我通常是暴力方式!)
使用其他的暴力方法停止slapd可能造成信息丢失或者数据库崩溃