6. slapd の実行

slapd(8) はスタンドアローンサーバとして動作するように設計されています。これによりサーバは、キャッシング、基盤データベースにおける並行処理問題の管理、システムリソースの維持といった利点が得られます。inetd(8) からの実行はできなくなりました。

6.1. コマンドラインオプション

slapd(8) は、マニュアルページに詳説されているように多くのコマンドラインオプションをサポートしています。この節ではよく使われる少数のオプションについて詳説します。

        -f <filename>

このオプションは、slapd の設定ファイルを明示します。デフォルトは普通 /usr/local/etc/openldap/slapd.conf です。

        -h <URLs>

このオプションは代替のリスナ設定を指定します。デフォルトは ldap:/// です。これはデフォルトの LDAP ポート 389 ですべてのインタフェースを扱う TCP上の LDAP を意味します。このオプションには、特定のポスト/ポートのペアもしくは他のプロトコルスキーム(ldaps:// や ldapi:// など)を指定できます。たとえば -h "ldaps:// ldap://127.0.0.1:666" は、二つのリスナを作成します。一つはデフォルトの LDAP/SSL ポート 636 ですべてのインタフェースを扱う SSL 上の LDAP です。もう一つはポート 666 で localhost (loopback)のインタィェースを扱う TCP上の LDAP です。ホストは、IPv4 の数値とドットを使った形式でもホスト名ででも指定できます。

        -n <service-name>

このオプションは、ログ採取などで使われるサービス名を指定します。デフォルトのサービス名は slapd です。

        -l <syslog-local-user>

このオプションは syslog(8) 機能のローカルユーザを指定します。値は LOCAL0, LOCAL1, LOCAL2, から LOCAL7 まで指定できます。デフォルトは LOCAL4 です。このオプションはシステムによってサポートされていないことがあります。

        -u user -g group

これらのオプションは、それぞれ slapd を実行するためのユーザとグループを指定します。user にはユーザ名か uid を指定します。group にはグループ名か gid を指定します。

        -r directory

このオプションは実行時ディレクトリを指定します。 slapd はリスナをオープンした後、設定ファイルの読込みやバックエンドの初期化をする前に、このディレクトリに chroot(2) します。

        -d <level> | ?

このオプションは slapd のデバッグレベルを <level> に設定します。レベルが `?' 文字の場合、さまざまなデバッグレベルを表示し、他のオプション指定を無視して slapd は終了します。現在サポートされているデバッグレベルには次のものがあります。

表6.1: デバッグレベル
レベル 説明
-1 すべてのデバッグレベルを有効にする
0 デバッグしない
1 関数呼出しのトレース
2 パケット処理のデバッグ
4 詳細なデバッグトレース
8 接続管理
16 パケット送受信の印字
32 検索フィルタ処理
64 設定ファイル処理
128 アクセス制御リスト処理
256 接続/操作/結果の統計ログ
512 エントリ送信の統計ログ
1024 shell バックエンドとの通信の印字
2048 エントリ解析のデバッグ印字

複数のデバッグレベルを有効にすることもできます。要求するレベルそれぞれについてデバッグオプションを指定してもよいですし、デバッグレベルを加算して指定してもかまいません。つまり、関数呼出しのトレースと設定ファイルの処理の観察を行いたければ、レベルをその二つのレベルの合計に設定すればよいのです(この場合は -d 65)。また、そのような加算を slapd にさせることもできます(たとえば -d 1 -d 64)。より詳しくは <ldap_log.h> ファイルを参照してください。


注記:統計ログを出力する二つのレベル以外のデバッグ情報を出力できるようにするには、slapd を -DLDAP_DEBUG 付きで slapd をコンパイルしておかなければなりません。

6.2. slapd を実行する方法

一般に、slapd は次のように実行します。

        /usr/local/etc/libexec/slapd [<option>]*

ここで /usr/local/etc/libexec は、configure スクリプトで決定された場所で、<option> は前述した(あるいは slapd(8) に説明のある)オプションです。デバッグレベルを指定しなければ(レベルに 0 を指定した場合も含めて)、slapd は自動的に fork し、制御端末から自分を切り離してバックグラウンドで動作します。

6.3. slapd を終了する方法

安全に slapd を終了させるには、次のようにコマンドを与えます。

        kill -INT `cat /usr/local/var/slapd.pid`

より強制的に終了させる手段を使うと情報が失われたりデータベースが不正になる恐れがあります。