[訳注] この章の説明は基本的に OpenLDAP 2.0.x に基づいています。
slapd はスタンドアローンサーバとして動作するように設計されて います。これによりサーバは、キャッシング、基盤データベース における並行処理問題の管理、システムリソースの維持といった利点が 得られます。inetd(8) から実行するオプションはなくなりました。
slapd は、マニュアルページに詳説されているように多くの コマンドラインオプションをサポートしています。この節では よく使われる少数のオプションについて詳説します。
このオプションは、slapd の設定ファイルを明示します。 デフォルトは普通 /usr/local/etc/openldap/slapd.conf です。
このオプションは代替のリスナ設定を指定します。 デフォルトは ldap:/// です。 これはデフォルトの LDAP ポート 389 ですべてのインタフェースを扱う TCP上の LDAP を意味します。 このオプションには、特定のポスト/ポートのペアもしくは他の プロトコルスキーム(ldaps:// や ldapi:// など)を指定できます。 たとえば -h "ldaps:// ldap://127.0.0.1:667" は、 二つのリスナを作成します。一つはデフォルトの LDAP/SSL ポート 636 ですべてのインタフェースを扱う SSL 上の LDAP です。もう一つは ポート 667 で localhost (loopback)のインタィェース を扱う TCP上の LDAP です。ホストは、IPv4 の数値とドットを使った 形式でもホスト名ででも指定できます。
このオプションは、ログ採取などで使われるサービス名を指定します。 デフォルトのサービス名は slapd です。
このオプションは syslog(8) 機能のローカルユーザを指定します。 値は LOCAL0, LOCAL1, LOCAL2, から LOCAL7 まで指定できます。デフォルトは LOCAL4 です。 このオプションはシステムによってサポートされていないことがあります。
これらのオプションは、それぞれ slapd を実行するための ユーザとグループを指定します。user にはユーザ名か uid を指定します。group にはグループ名か gid を指定します。
このオプションは実行時ディレクトリを指定します。 slapd はリスナをオープンした後、設定ファイルの読込みや バックエンドの初期化をする前に、このディレクトリに chroot(2) します。
このオプションは slapd のデバッグレベルを <level> に設定します。 レベルが `?' 文字の場合、さまざまなデバッグレベルを表示し、他の オプション指定を無視して slapd は終了します。現在サポートされてい るデバッグレベルには次のものがあります。
-1 すべてのデバッグレベルを有効にする 0 デバッグしない 1 関数呼出しのトレース 2 パケット処理のデバッグ 4 詳細なデバッグトレース 8 接続管理 16 パケット送受信の印字 32 検索フィルタ処理 64 設定ファイル処理 128 アクセス制御リスト処理 256 接続/操作/結果の統計ログ 512 エントリ送信の統計ログ 1024 shell バックエンドとの通信の印字 2048 エントリ解析のデバッグ印字
複数のデバッグレベルを有効にすることもできます。要求するレベル それぞれについてデバッグオプションを指定してもよいですし、 デバッグレベルを加算して指定してもかまいません。つまり、関数呼出し のトレースと設定ファイルの処理の観察を行いたければ、レベルをその 二つのレベルの合計に設定すればよいのです(この場合は -d 65)。 また、そのような加算を slapd にさせることもできます(たとえば -d 1 -d 64)。より詳しくは <ldap.h%gt; ファイルを参照してください。
注記:統計ログを出力する二つのレベル以外のデバッグ情報を出力できるように するには、slapd を -DLDAP_DEBUG 付きで slapd をコンパイルしておか なければなりません。
[訳注] OpenLDAP 2.0.x では -d ? 指定が無くなりました。
一般に slapd は次のように実行します。
/usr/local/etc/libexec/slapd [<option>]*
ここで /usr/local/etc/libexec は、configure スクリプトで 決定された場所で、<option> は前述した(あるいは slapd(8) に説明のある)オプションです。デバッグレベルを指定しなければ(レベルに 0 を指定した場合も含めて)、slapd は自動的に fork し、 制御端末から自分を切り離してバックグラウンドで動作します。
安全に slapd を終了させるには、次のようにコマンドを与えます。
kill -TERM `cat $(ETCDIR)/slapd.pid`
[訳注] OpenLDAP 2.0.x では `-TERM' ではなく `-INT' を指定することになっていなす。
slapd が終了する前にはさまざまなバッファをフラッシュする必要が あるため、より強制的に終了させる手段を使うと LDBM データベースが 不正になる恐れがあります。slapd は、slapd.conf ファイルに設定した ディレクトリの slapd.pid というファイル(たとえば /usr/local/var/slapd.pid) に pid を書き込みます。
include/ldapconfig.h.edit 中の SLAPD_PIDFILE を変更することによって、 この pid ファイルの位置を変更できます。
[訳注]
現在の OpenLDAP では slapd.conf のグローバルオプションで pid ファイルの
位置を設定するように変更されています。たとえば
`pidfile /usr/local/var/slapd.pid
' と指定します。
また、slapd は、slapd.conf ファイルに設定したディレクトリの slapd.args というファイル(たとえば /usr/local/var/slapd.args)に slapd の引数を書き込みます。 include/ldapconfig.h.edit 中の SLAPD_ARGSFILE を変更することによって、 この引数ファイルの位置を変更できます。
[訳注]
現在の OpenLDAP では slapd.conf のグローバルオプション
で引数ファイルの位置を設定するように変更されています。たとえば
`argsfile /usr/local/var/slapd.args
' と指定します。