nsswitch.conf ファイルの状態メッセージと動作オプションの組み合わせによって、関数の各ステップでの動作が決まります。 状態と動作を組み合わせて、「検索基準」を構成します。
スイッチのデフォルト検索基準は、どのソースについても同じです。 これらを上記の状態メッセージに基づいて説明すると、次のようになります。
UNAVAIL=continue。 次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。 次のソースがなければ、「NOTFOUND」という状態メッセージを返す
NOTFOUND=continue。 次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。 次のソースがなければ、「NOTFOUND」という状態メッセージを返す
TRYAGAIN=continue。 次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。 次のソースがなければ、「NOTFOUND」という状態メッセージを返す
ほかの検索基準を明示的に指定してデフォルトの検索基準を変更するには、上記の STATUS=action という構文を使用します。 たとえば、NOTFOUND 状態に対し、デフォルトの動作では次のソースに対する検索を続行しますが、 NOTFOUND 状態の場合に検索を停止するように networks の設定を変更するには、スイッチファイルの networks 行を次のように編集します。
networks: nis [NOTFOUND=return] files |
networks: nis [NOTFOUND=return] files 行は、NOTFOUND 状態に関してデフォルトでない検索基準を設定しています。 デフォルト以外の設定をするときは [ ] を使用します。
この例では、検索関数は以下のような働きをします。
networks マップが見つかり必要な情報があった場合、関数は「SUCCESS」という状態メッセージを返します。
networks マップが見つからなかった場合、関数は「UNAVAIL」という状態メッセージを返し、 デフォルトで適切な /etc ファイルの検索を続行します。
networksマップは見つかったがマップの中に必要な情報がなかった場合、関数は「NOTFOUND」という状態メッセージを返します。 そして /etc ファイルの検索を続行する (デフォルトの設定) 代わりに検索を停止します。
networksマップが使用中の場合、関数は TRYAGAIN という状態メッセージを返し、デフォルトで適当な /etc ファイルの検索を続行します。