RCORDER(8) | FreeBSD System Manager's Manual | RCORDER(8) |
名称
rcorder — 相互に依存するファイル間の依存順序の表示書式
rcorder | [ -k keep][ -s skip] file ... |
解説
rcorder ユーティリティは、相互に依存するファイル間の依存順序を表示するようデザインされています。典型的には、あるファイルが別のものの前に実行されることが必要だというシェルスクリプト群の実行順序を見つけるために使用されます。rcorder に渡される各ファイルは、特殊行 (シェルにはコメントに見えます) で注釈付けする必要があります。それらは、“条件”と呼ばれるある実行時点にファイルが依存することを示し、各ファイルがどの“条件”を満足させ得るのかを示します。
各ファイル中には、一連の“ REQUIRE
”, “ PROVIDE
”, “ BEFORE
”と“ KEYWORD
”行を含むブロックが存在することが必要です。行の書式は、厳密です。各行は、単一の‘ #
’で開始し、単一の空白が続き、“ PROVIDE:
”, “ REQUIRE:
”, “ BEFORE:
”, “ KEYWORD:
”のいずれかが続くことが必要です。逸脱は、許されません。各依存行に続き、一連の条件が空白区切りで続きます。複数の“ PROVIDE
”, “ REQUIRE
”, “ BEFORE
”と“ KEYWORD
”行が登場して構いませんが、途中に余計な行が入ってはなりません。書式に合致しない行に到達すると、構文解析が終了します。
オプションは、次の通りです:
- -k
- 指定したキーワードを“キープリスト”に追加します。 -k オプションを指定すると、合致するキーワードを含むファイルのみが列挙されます。
- -s
- 指定したキーワードを“スキップリスト”に追加します。 -s オプションを指定すると、合致するキーワードを含むファイルは、列挙されません。
ブロックの例は、次の通りです:
# REQUIRE: networking syslog # REQUIRE: usr # PROVIDE: dns nscd
このブロックが含まれるファイルは、“ networking
”, “ syslog
”と“ usr
”の条件に依存し“ dns
”と“ nscd
”の条件を提供することを、このブロックは述べています。
ファイルには、“ PROVIDE
”行が無くても構いません。その場合、なにも条件を提供しません。ファイルには、“ REQUIRE
”行が無くても構いません。その場合、ファイルは、何にも依存しません。依存順序の中の開始点が見つけられるためには、 rcorder に渡される引数の中には、依存が無いファイルが少なくとも 1 個は必要です。
診断
ファイルリストの処理中にエラーが見つかると、 rcorder ユーティリティは、次のエラーメッセージのいずれかを表示し、非 0 の状態で終了します。- Requirement %s has no providers, aborting.
-
別のファイル中の“
REQUIRE
”行に存在する条件に対応する“PROVIDE
”行を持つファイルがありません。 - Circular dependency on provision %s, aborting.
- 表示された条件の処理中に、あるファイル群に循環依存関係があることが検出されました。
- Circular dependency on file %s, aborting.
- 表示されたファイルの処理中に、あるファイル群に循環依存関係があることが検出されました。
関連項目
rc(8)歴史
rcorder ユーティリティは、 NetBSD 1.5 ではじめて登場しました。作者
<perry@piermont.com>と <mrg@eterna.com.au>によって書かれました。バグ
“REQUIRE
”キーワードは、人を誤らせます: スクリプトが開始される前に実行されなければならないデーモンを記述しません。依存する順序でその前に置かなければならないスクリプトを記述します。例えば、利用者のスクリプトが“
named
”で“
REQUIRE
”があるなら、スクリプトが依存する順序で“
named
”スクリプトの後に置かなければならないことを意味します、開始されるか、または有効にされるために
named(8) を要求する必要はありません。
August 5, 2011 | FreeBSD |