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.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`

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