Reviewed but uncommited man pages.
Submitted by: Sarumaru Yoshihiko <mistral at imasy or jp>
This commit is contained in:
parent
821092dff6
commit
730eb3d2f8
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=27290
28 changed files with 430 additions and 419 deletions
|
@ -68,7 +68,8 @@
|
|||
.It Fl r
|
||||
.Fl c
|
||||
と似ていますが、新しいエントリはアーカイブに追加されます。
|
||||
なおこれは通常ファイルの非圧縮アーカイブに対してのみ動作します。
|
||||
なおこれは通常ファイルに保存された非圧縮アーカイブに対してのみ
|
||||
動作することに注意してください。
|
||||
.Fl f
|
||||
オプションが必要です。
|
||||
.It Fl t
|
||||
|
@ -77,12 +78,13 @@
|
|||
.Fl r
|
||||
と似ていますが、新しいエントリの変更時刻が、アーカイブ内の対応するエントリ
|
||||
のものよりも新しい場合のみ、追加されます。
|
||||
なおこれは通常ファイルの非圧縮アーカイブに対してのみ動作します。
|
||||
なおこれは通常ファイルに保存された非圧縮アーカイブに対してのみ
|
||||
動作することに注意してください。
|
||||
.Fl f
|
||||
オプションが必要です。
|
||||
.It Fl x
|
||||
アーカイブからディスクに展開します。
|
||||
もし同名のファイルがアーカイブ内に 2 回以上現れた場合、それぞれのコピーが
|
||||
もし同名のファイルがアーカイブ内に複数回現れた場合、それぞれのコピーが
|
||||
展開され、後のものがそれ以前のコピーを上書き (置換) します。
|
||||
.El
|
||||
.Pp
|
||||
|
@ -93,7 +95,7 @@
|
|||
指定された順にアーカイブに追加されます。
|
||||
デフォルトでは、各ディレクトリ内のファイルもアーカイブされます。
|
||||
.Pp
|
||||
展開またはリストモードにおいて、アーカイブをオープンする前に
|
||||
展開またはリストモードでは、アーカイブをオープンする前に
|
||||
コマンドライン全体が読み込まれ、解析されます。
|
||||
コマンドラインのパス名またはパターンは、アーカイブ内の処理対象となる
|
||||
アイテムを示します。
|
||||
|
@ -121,14 +123,16 @@
|
|||
gzip で圧縮した pax フォーマットアーカイブに変換して、標準出力に出力します。
|
||||
このように、
|
||||
.Nm
|
||||
はアーカイブのフォーマットを別のものに変換する為に使うことが出来ます。
|
||||
はアーカイブのフォーマットを別のものに変換するために使用できます。
|
||||
.It Fl b Ar blocksize
|
||||
テープドライブの I/O に対するブロックサイズを、512 バイトレコード単位で
|
||||
指定します。
|
||||
一般に、本引数はテープドライブに読み書きする時、デフォルトブロックサイズで
|
||||
ありごく一般的な 20 レコード (10240 バイト) を用いない場合のみに必要となります。
|
||||
一般に、本引数はテープドライブに読み書きする場合にのみ必要であり、
|
||||
たとえその場合であってもデフォルトのブロックサイズである
|
||||
20 レコード (10240 バイト) はとても普遍的な値であるので、
|
||||
通常必要ありません。
|
||||
.It Fl C Ar directory
|
||||
c および r モードにおいて、続くファイルを追加する前に、ディレクトリを
|
||||
c および r モードにおいては、続くファイルを追加する前に、ディレクトリを
|
||||
変更します。
|
||||
x モードにおいては、アーカイブをオープンした後、エントリをアーカイブから
|
||||
展開する前にディレクトリを変更します。
|
||||
|
@ -138,7 +142,8 @@ x
|
|||
警告メッセージを発行します。
|
||||
.It Fl -exclude Ar pattern ( Fl W Cm exclude Ns = Ns Ar pattern )
|
||||
指定したパターンにマッチするファイルやディレクトリを、処理しません。
|
||||
なおこれはコマンドラインで指定したパターンやファイル名よりも優先します。
|
||||
なおこれはコマンドラインで指定したパターンやファイル名よりも
|
||||
優先することに注意してください。
|
||||
.It Fl -format Ar format ( Fl W Cm format Ns = Ns Ar format )
|
||||
(c モードのみ)
|
||||
作成するアーカイブのフォーマットを指定するのに用います。
|
||||
|
@ -153,7 +158,7 @@ x
|
|||
.Xr libarchive-formats 5
|
||||
を参照してください。
|
||||
.It Fl f Ar file
|
||||
指定されたファイルを、読み書きするアーカイブにします。
|
||||
指定されたファイルに対してアーカイブを読んだり書いたりします。
|
||||
ファイル名を
|
||||
.Pa -
|
||||
にすれば、標準入力または標準出力になります。
|
||||
|
@ -167,8 +172,8 @@ x
|
|||
最初のアーカイブエントリだけを展開またはリスト表示します。
|
||||
各パターンまたはファイル名にマッチすれば、すぐに終了します。
|
||||
同名のエントリが複数存在でき、また慣習として後のエントリがそれ以前のエントリを
|
||||
上書きする為に、デフォルトではアーカイブは常に最後まで読み込まれます。
|
||||
本オプションは性能の最適化の為に提供されています。
|
||||
上書きするため、デフォルトではアーカイブは常に最後まで読み込まれます。
|
||||
本オプションは性能の最適化のために提供されています。
|
||||
.It Fl H
|
||||
(c および r モードのみ)
|
||||
コマンドラインで指定されたシンボリックリンクを追跡します。
|
||||
|
@ -181,8 +186,8 @@ x
|
|||
指定したパターンにマッチしたファイルまたはディレクトリのみ処理します。
|
||||
なおこの指定よりも、
|
||||
.Fl -exclude
|
||||
による指定が優先します。
|
||||
これを明示しなければ、デフォルトで全てのエントリが処理されます。
|
||||
による除外指定が優先することに注意してください。
|
||||
これを明示しなければ、デフォルトでは全てのエントリが処理されます。
|
||||
この
|
||||
.Fl -include
|
||||
オプションは、アーカイブをフィルタリングするのに特に有用です。
|
||||
|
@ -204,11 +209,11 @@ x
|
|||
なお他の
|
||||
.Nm tar
|
||||
実装と異なり、本実装ではアーカイブを読み込む際には、bzip2 圧縮を
|
||||
自動的に判別します。
|
||||
自動的に判別することに注意してください。
|
||||
.It Fl k
|
||||
(x モードのみ)
|
||||
既存のファイルを上書きしません。
|
||||
特に、アーカイブ内に 2 回以上現れるファイルであっても、後のコピーが
|
||||
特に、アーカイブ内にあるファイルが複数回現れても、後のコピーが
|
||||
それ以前のコピーを上書きすることはしません。
|
||||
.It Fl L
|
||||
(c および r モードのみ)
|
||||
|
@ -233,7 +238,7 @@ GNU tar
|
|||
ディレクトリ内のファイルを再帰的にアーカイブしません。
|
||||
.It Fl -nodump ( Fl W Cm nodump )
|
||||
(c および r モードのみ)
|
||||
nodump ファイルフラグの立ったファイルをスキップします。
|
||||
nodump ファイルフラグを尊重して、このファイルをスキップします。
|
||||
.It Fl O
|
||||
(x, t モードのみ)
|
||||
展開 (-x) モードでは、ファイルはディスクに展開されずに標準出力に
|
||||
|
@ -242,14 +247,14 @@ nodump
|
|||
書き込まれます。
|
||||
.It Fl o
|
||||
(x モードのみ)
|
||||
ユーザとグループを、アーカイブが指定したものではなく、
|
||||
ユーザとグループを、アーカイブ中で指定されたものではなく、
|
||||
本プログラムを実行しているユーザのものを使用します。
|
||||
なおこれは
|
||||
.Fl p
|
||||
を指定しないと意味がありません。
|
||||
また本プログラムを root ユーザが実行している必要があります。
|
||||
を指定し、かつ本プログラムを root ユーザが実行していなければ
|
||||
意味がないことに注意してください。
|
||||
この場合、ファイルモードとフラグはアーカイブからリストアされますが、
|
||||
ACL や所有者の情報は破棄されます。
|
||||
アーカイブ中の ACL や所有者の情報は破棄されます。
|
||||
.It Fl P
|
||||
パス名を保持します。
|
||||
デフォルトでは、アーカイブの作成と展開の両方において、絶対パス名 (/ 文字で
|
||||
|
@ -258,18 +263,18 @@ ACL
|
|||
.Nm
|
||||
は、パス名に
|
||||
.Pa ..
|
||||
を含んでいたり、対象ディレクトリをシンボリックリンクで変更する
|
||||
アーカイブエントリを展開するのを拒否します。
|
||||
本オプションはこの振舞いを抑制します。
|
||||
を含んでいたり、対象ディレクトリをシンボリックリンクで変更したりする
|
||||
アーカイブエントリの展開を拒否します。
|
||||
本オプションはこれらの振舞いを抑制します。
|
||||
.It Fl p
|
||||
(x モードのみ)
|
||||
ファイルパーミッションを保持します。
|
||||
アーカイブから各アイテムを展開する際、可能ならば、所有者、ファイルモード、
|
||||
アーカイブから各アイテムを展開する際、もしあれば、所有者、ファイルモード、
|
||||
ファイルのフラグと ACL を含む、全てのパーミッションをリストアしようとします。
|
||||
デフォルトでは、新規作成するファイルの所有者は
|
||||
.Nm
|
||||
を実行するユーザとなり、新規作成する通常ファイルに関してはファイルモードが
|
||||
リストアされ、またこれら以外のタイプのエントリはデフォルトのパーミッションに
|
||||
リストアされ、これら以外のタイプのエントリはデフォルトのパーミッションに
|
||||
なります。
|
||||
もし
|
||||
.Nm
|
||||
|
@ -288,7 +293,7 @@ ACL
|
|||
.It Fl U
|
||||
(x モードのみ)
|
||||
ファイルを作成する前に、いったん削除します。
|
||||
本オプション無しでは、
|
||||
本オプションなしでは、
|
||||
.Nm
|
||||
は既存のファイルを上書きし、既存のハードリンクを保持します。
|
||||
本オプションにより、既存のハードリンクは破棄され、同様に、
|
||||
|
@ -298,6 +303,7 @@ ACL
|
|||
作成及び展開モードにおいて、
|
||||
.Nm
|
||||
はアーカイブに書き込み、またはアーカイブから読み出した各ファイルの名前を
|
||||
そのまま
|
||||
リスト表示します。
|
||||
リストモードにおいて、
|
||||
.Nm
|
||||
|
@ -305,17 +311,17 @@ ACL
|
|||
.Xr ls 1
|
||||
に似た出力を表示します。
|
||||
.Fl v
|
||||
オプションを追加することで、付加的な説明を表示します。
|
||||
オプションを追加することで、より詳細に表示します。
|
||||
.It Fl W Ar longopt=value
|
||||
ロングオプション
|
||||
.Pf ( Fl -
|
||||
が先行する)
|
||||
が先頭につく)
|
||||
は、
|
||||
.Xr getopt_long 3
|
||||
関数が用意されているシステムでのみ、直接サポートされます。
|
||||
この関数をサポートしないシステムでは、本
|
||||
.Fl W
|
||||
オプションを介して、ロングオプションを使うことが出来ます。
|
||||
オプションを介して、ロングオプションを使用できます。
|
||||
.It Fl w
|
||||
あらゆる操作に対し、確認を求めます。
|
||||
.It Fl X Ar filename
|
||||
|
@ -332,7 +338,7 @@ ACL
|
|||
なお他の
|
||||
.Nm tar
|
||||
実装と異なり、本実装ではアーカイブを読み込む際には、bzip2 圧縮を
|
||||
自動的に判別します。
|
||||
自動的に判別することに注意してください。
|
||||
.It Fl z
|
||||
(c モードのみ)
|
||||
作成するアーカイブを
|
||||
|
@ -342,7 +348,7 @@ ACL
|
|||
なお他の
|
||||
.Nm tar
|
||||
実装と異なり、本実装ではアーカイブを読み込む際には、gzip 圧縮を
|
||||
自動的に判別します。
|
||||
自動的に判別することに注意してください。
|
||||
.El
|
||||
.Sh 環境変数
|
||||
次の環境変数が、
|
||||
|
@ -353,7 +359,7 @@ ACL
|
|||
使用するロケール。
|
||||
詳細は
|
||||
.Xr environ 7
|
||||
を参照。
|
||||
を参照してください。
|
||||
.It Ev POSIXLY_CORRECT
|
||||
この環境変数が定義されると、
|
||||
.Fl l
|
||||
|
@ -363,12 +369,12 @@ ACL
|
|||
.It Ev TAPE
|
||||
デフォルトテープデバイス。
|
||||
.Fl f
|
||||
オプションはこれを無視します。
|
||||
オプションはこれを上書きします。
|
||||
.It Ev TZ
|
||||
日付を表示する際に使用するタイムゾーン。
|
||||
詳細は
|
||||
.Xr environ 7
|
||||
を参照。
|
||||
を参照してください。
|
||||
.El
|
||||
.Sh 関連ファイル
|
||||
.Bl -tag -width ".Ev BLOCKSIZE"
|
||||
|
@ -376,7 +382,7 @@ ACL
|
|||
.Ev TAPE
|
||||
環境変数か
|
||||
.Fl f
|
||||
オプションで無視されないなら、
|
||||
オプションで上書きされない限り、
|
||||
デフォルトのテープデバイスです。
|
||||
.El
|
||||
.Sh 終了ステータス
|
||||
|
@ -399,10 +405,10 @@ ACL
|
|||
.Pp
|
||||
作成モードにおいて、アーカイブされるファイルとディレクトリのリストには、
|
||||
.Cm -C Ns Pa foo/baz
|
||||
の形式でディレクトリの変更命令を取り込むことが出来ます。
|
||||
の形式でディレクトリの変更命令を取り込めます。
|
||||
また
|
||||
.Cm @ Ns Pa archive-file
|
||||
の形式でアーカイブのエントリを取り込むことも出来ます。
|
||||
の形式でアーカイブのエントリを取り込むこともできます。
|
||||
例えば、次のコマンドライン
|
||||
.Dl Nm Fl c Fl f Pa new.tar Pa foo1 Cm @ Ns Pa old.tgz Cm -C Ns Pa /tmp Pa foo2
|
||||
では、新しいアーカイブ
|
||||
|
@ -424,8 +430,8 @@ ACL
|
|||
まとめオプション形式は、これまでの実装との互換性のためにサポートされています。
|
||||
これには、各文字がオプションである頭文字 (- 文字で始まらない)
|
||||
が存在します。
|
||||
引数は別々の単語で続きます。
|
||||
この引数の順序はまとめオプション文字内の、対応する頭文字の順序と一致している
|
||||
引数は別々の単語として続きます。
|
||||
この引数の順序はまとめオプション文字内の、対応する文字の順序と一致している
|
||||
必要があります。
|
||||
例えば
|
||||
.Dl Nm Cm tbf 32 Pa file.tar
|
||||
|
@ -450,7 +456,7 @@ ACL
|
|||
フラグに対する引数です。
|
||||
.Pp
|
||||
モードオプションの c, r, t, u, x、およびオプションの
|
||||
b, f, l, m, o, v, w は、SUSv2 に準じています。
|
||||
b, f, l, m, o, v, w は、SUSv2 に適合しています。
|
||||
.Pp
|
||||
移植性を最大限にするために、
|
||||
.Nm tar
|
||||
|
@ -465,7 +471,7 @@ b, f, l, m, o, v, w
|
|||
.Cm m ,
|
||||
.Cm v ,
|
||||
.Cm w
|
||||
に制限するべきです。
|
||||
に限定するべきです。
|
||||
.Pp
|
||||
getopt_long() をサポートするシステムでは、他の tar 実装との互換性を
|
||||
増すために、ロングオプションが使用できます。
|
||||
|
@ -473,30 +479,30 @@ getopt_long()
|
|||
確実なセキュリティは、
|
||||
.Nm
|
||||
を含む沢山のアーカイブプログラムに共通の課題です。
|
||||
特に、細工されたアーカイブは
|
||||
特に、注意深く細工されたアーカイブは
|
||||
.Nm
|
||||
に対して、対象とするディレクトリ以外の場所にファイルを展開するように
|
||||
要求することが出来ます。
|
||||
これは不注意なユーザに対し、上書きするつもりの無いファイルを
|
||||
上書きさせるのに使うことが潜在的に可能です。
|
||||
要求できます。
|
||||
これは不注意なユーザに対し、上書きするつもりのないファイルを
|
||||
上書きさせられる可能性があります。
|
||||
アーカイブをスーパユーザが展開している場合は、システム上の
|
||||
あらゆるファイルが上書きされる潜在的な可能性があります。
|
||||
あらゆるファイルが上書きさせられる可能性があります。
|
||||
これを引き起こす、三つの手段があります。
|
||||
.Nm
|
||||
はそれらに対する防御機構を備えていますが、情報通のユーザならば、
|
||||
それらについて知っておくべきでしょう:
|
||||
はそれぞれに対する防御機構を備えていますが、情報通のユーザならば、
|
||||
それらの意味するところを知っておくべきでしょう:
|
||||
.Bl -bullet -width indent
|
||||
.It
|
||||
アーカイブのエントリは、絶対パス名を持つことが出来ます。
|
||||
アーカイブのエントリは、絶対パス名を持つことができます。
|
||||
デフォルトでは、
|
||||
.Nm
|
||||
はこの問題に対する防御策として、これをリストアする前にファイル名の先頭にある
|
||||
はこの問題に対する防御策として、これらをリストアする前にファイル名の先頭にある
|
||||
.Pa /
|
||||
文字を取り除きます。
|
||||
.It
|
||||
アーカイブのエントリは、
|
||||
.Pa ..
|
||||
を含むパス名を持つことが出来ます。
|
||||
を含むパス名を持てます。
|
||||
デフォルトでは、
|
||||
.Nm
|
||||
はパス名に
|
||||
|
@ -504,10 +510,12 @@ getopt_long()
|
|||
を含んでいるファイルを展開しません。
|
||||
.It
|
||||
アーカイブのエントリでは、ファイルを別のディレクトリにリストアするように、
|
||||
シンボリックリンクを悪用することが出来ます。
|
||||
アーカイブは別のディレクトリを指すシンボリックリンクをリストアすることが出来、
|
||||
シンボリックリンクを悪用できます。
|
||||
アーカイブは別のディレクトリを指すシンボリックリンクをリストアすることができ、
|
||||
このリンクを使ってファイルをそのディレクトリにリストアします。
|
||||
これを防ぐため、.Nm では毎回、展開されるパスにシンボリックリンクが
|
||||
これを防ぐため、
|
||||
.Nm
|
||||
では毎回、展開されるパスにシンボリックリンクが
|
||||
含まれるかどうかを調べます。
|
||||
もしパスの最後の要素が
|
||||
シンボリックリンクであれば、そのシンボリックリンクは削除され、
|
||||
|
@ -528,11 +536,11 @@ getopt_long()
|
|||
.Dl Nm Fl tf Pa filename
|
||||
としてアーカイブの内容を調べるべきです。
|
||||
.Nm
|
||||
が既存のファイルを上書きしないことを保証するには
|
||||
に
|
||||
.Fl k
|
||||
オプションを使うべきですし、既存のファイルを消去させるには
|
||||
オプションをつけて既存のファイルを上書きしないことを保証させるか、
|
||||
.Fl U
|
||||
オプションを使うべきです。
|
||||
オプションをつけて既存のファイルを削除させるべきです。
|
||||
一般に、スーパユーザ権限にある時は、アーカイブを展開するべきではありません。
|
||||
なお
|
||||
.Fl P
|
||||
|
@ -541,7 +549,7 @@ getopt_long()
|
|||
は上に述べたセキュリティチェックを行わないようになり、絶対パスや
|
||||
.Pa ..
|
||||
を含むファイル、及び他のディレクトリへのシンボリックリンクを
|
||||
展開できるようになります。
|
||||
展開できるようになることに注意してください。
|
||||
.Sh 関連項目
|
||||
.Xr bzip2 1 ,
|
||||
.Xr cpio 1 ,
|
||||
|
@ -557,9 +565,9 @@ getopt_long()
|
|||
.St -p1003.1-96
|
||||
にはありましたが、
|
||||
.St -p1003.1-2001
|
||||
では無くなりました。
|
||||
本実装で使用できるオプションは、古い tar の POSIX 仕様、現在の
|
||||
pax の POSIX 仕様はもちろん、現存するいくつかの tar 実装を調査して
|
||||
ではなくなりました。
|
||||
本実装で使用できるオプションは、現存するいくつかの tar 実装と同様、
|
||||
tar の古い POSIX 仕様、pax の現在の POSIX 仕様を調査して
|
||||
開発されました。
|
||||
.Pp
|
||||
ustar と pax 間のファイルフォーマット変換については、pax コマンドの
|
||||
|
@ -567,12 +575,12 @@ ustar
|
|||
にて定義されています。
|
||||
.Sh 歴史
|
||||
.Nm tar
|
||||
コマンドは Seventh Edition Unix から登場しました。
|
||||
他の多数の実装があり、その多くはファイルフォーマットを拡張しています。
|
||||
コマンドは Seventh Edition Unix で登場しました。
|
||||
他に多数の実装があり、その多くはファイルフォーマットを拡張しています。
|
||||
John Gilmore によるパブリックドメイン実装の
|
||||
.Nm pdtar
|
||||
(1987 年 11 月頃) は多大な影響を及ぼし、GNU tar の元になりました。
|
||||
FreeBSD 1.0 より、GNU tar は FreeBSD 基本システムの tar として
|
||||
FreeBSD が 1.0 より始まった時に、GNU tar は FreeBSD 基本システムの tar として
|
||||
取り込まれました。
|
||||
.Pp
|
||||
本ソフトウェアは
|
||||
|
@ -589,7 +597,7 @@ POSIX
|
|||
.\" because of = ~のために、~のせいで
|
||||
.Pp
|
||||
.Fl C Pa dir
|
||||
オプションは、歴代の実装とは異なっているかも知れません。
|
||||
オプションは、歴史的な実装とは異なっているでしょう。
|
||||
.Pp
|
||||
全てのアーカイブ出力は、出力を圧縮していても、正しいサイズのブロックで
|
||||
書き出されます。
|
||||
|
@ -611,21 +619,21 @@ tar
|
|||
.Dl Nm Fl czf Pa - file
|
||||
により作成した圧縮出力と、
|
||||
.Dl Nm Fl cf Pa - file | Nm gzip
|
||||
により作成した圧縮出力には、些細ですが違いがあります。
|
||||
により作成した圧縮出力には、些細な違いがあるかもしれません。
|
||||
.Pp
|
||||
デフォルトでは標準の I/O パスでアーカイブを読み書きするべきですが、
|
||||
伝統的に (および POSIX では) 他のものを要求します。
|
||||
伝統的に (および POSIX では) 他のものを規定しています。
|
||||
.Pp
|
||||
.Cm r
|
||||
および
|
||||
.Cm u
|
||||
モードでは、アーカイブは非圧縮でディスク上に通常ファイルとして存在する
|
||||
必要があります。
|
||||
他のアーカイブは
|
||||
そうではないアーカイブは
|
||||
.Cm c
|
||||
モードと
|
||||
.Pa @archive-file
|
||||
拡張を用いて更新することが出来ます。
|
||||
拡張を用いて更新できます。
|
||||
.Pp
|
||||
.Pa @foo
|
||||
や
|
||||
|
@ -649,10 +657,11 @@ tar
|
|||
.Pp
|
||||
マルチボリュームアーカイブ、および疎なファイルに対するサポートはまだありません。
|
||||
.Pp
|
||||
異なるアーカイブフォーマット (tar と cpio など) を
|
||||
似ていないアーカイブフォーマット間 (tar と cpio など) で
|
||||
.Cm @ Ns Pa -
|
||||
により変換すると、ハードリンク情報が失われます
|
||||
(これは異なるアーカイブフォーマットでハードリンク情報を格納していることからくる
|
||||
(これは異なるアーカイブフォーマットでハードリンク情報を
|
||||
互換性のない形で格納していることからくる
|
||||
当然の結果です)。
|
||||
.Pp
|
||||
故意にドキュメント化していない、多くのショートオプションの代わりになる
|
||||
|
|
|
@ -416,7 +416,7 @@ utility
|
|||
ファイルのパーミッション、ハードリンクの数、所有者、グループ、
|
||||
バイトで表したファイルの大きさ、最後にファイルが修正された時刻、パス名です。
|
||||
ファイルがブロック型もしくはキャラクタ型の特殊ファイルならば、
|
||||
バイトで表したファイルの大きさの代わりにメジャー番号とマイナー番号を
|
||||
バイトで表したファイルの大きさの代わりにメジャー番号とマイナ番号を
|
||||
出力します。
|
||||
ファイルがシンボリックリンクならば、
|
||||
.Dq Li ->
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
更なる処理が必要であるため、通常はこれらは除外されています。
|
||||
.It Fl n
|
||||
数値フォーマットで表示を行います。マウントポイントの名前を表示する
|
||||
かわりに、そのファイルシステムにおけるデバイス番号 (メジャー、マイナー)
|
||||
かわりに、そのファイルシステムにおけるデバイス番号 (メジャー、マイナ)
|
||||
を表示します。特殊ファイルに関しては、
|
||||
.Pa /dev
|
||||
の下のファイル名
|
||||
|
@ -151,7 +151,7 @@ wd -
|
|||
.It Li DEV
|
||||
.Fl n
|
||||
が指定されると、このヘッダが現れます。ファイルが存在しているデバイス
|
||||
のメジャー番号とマイナー番号です。
|
||||
のメジャー番号とマイナ番号です。
|
||||
.It Li INUM
|
||||
ファイルの inode 番号。
|
||||
.It Li MODE
|
||||
|
@ -174,7 +174,7 @@ wd -
|
|||
になかったり、
|
||||
.Fl n
|
||||
が指定されていたりする
|
||||
と、スペシャルデバイスが参照するメジャー番号、マイナー番号を表示します。
|
||||
と、スペシャルデバイスが参照するメジャー番号、マイナ番号を表示します。
|
||||
.It Li R/W
|
||||
このフィールドには、ファイルのアクセス属性が表示されます。
|
||||
``r'' の場合は、ファイルが読み込みのためにオープンされていることを意味します。
|
||||
|
|
|
@ -311,7 +311,7 @@ ID
|
|||
.Pp
|
||||
ファイルがキャラクタ型もしくはブロック型の特殊ファイルである場合、
|
||||
ファイルサイズフィールドには
|
||||
ファイルのメジャー番号とマイナー番号が表示されます。
|
||||
ファイルのメジャー番号とマイナ番号が表示されます。
|
||||
ファイルがシンボリックリンクファイルである場合、
|
||||
リンク先ファイルのパス名が
|
||||
.Dq Li ->
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
.Nm
|
||||
は全再配置を含む表を表示します。
|
||||
.It Ev LD_LIBMAP
|
||||
ライブラリー置換リストで、形式は
|
||||
ライブラリ置換リストで、形式は
|
||||
.Xr libmap.conf 5
|
||||
と同じです。
|
||||
便利なように、空白と改行のかわりに
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" @(#) $Header: /home/ncvs/doc/ja_JP.eucJP/man/man1/tcpdump.1,v 1.23 2004-08-03 12:44:42 metal Exp $ (LBL)
|
||||
.\" @(#) $Header: /home/ncvs/doc/ja_JP.eucJP/man/man1/tcpdump.1,v 1.24 2006-03-08 07:43:47 metal Exp $ (LBL)
|
||||
.\"
|
||||
.\" $NetBSD: tcpdump.8,v 1.9 2003/03/31 00:18:17 perry Exp $
|
||||
.\"
|
||||
|
@ -1832,7 +1832,7 @@ wrl.nfs > sushi.201b:
|
|||
ファイルハンドル (\fIfh\fP) 21,24/10.731657119 に対する \fIreadlink\fP
|
||||
(シンボリックリンク読み込み) です。
|
||||
(この例のように運が良ければ、ファイルハンドルはデバイスのメジャー、
|
||||
マイナー番号のペアと、それに続く inode 番号と世代番号と解釈することがで
|
||||
マイナ番号のペアと、それに続く inode 番号と世代番号と解釈することがで
|
||||
きます。)
|
||||
\fIwrl\fP はリンクの内容とともに `ok' と返答しています。
|
||||
.LP
|
||||
|
|
|
@ -4870,7 +4870,7 @@ prompt
|
|||
(ディスクから取って来る必要があったページ数)。
|
||||
.TP 4
|
||||
%R
|
||||
マイナーページフォールトの回数。
|
||||
マイナページフォールトの回数。
|
||||
.TP 4
|
||||
%I
|
||||
入力操作の回数。
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
.\" forth in the LICENSE file which can be found at the top level of
|
||||
.\" the sendmail distribution.
|
||||
.\"
|
||||
.\" $Id: vacation.1,v 1.21 2004-09-24 06:50:37 metal Exp $
|
||||
.\" $Id: vacation.1,v 1.22 2006-03-08 07:43:47 metal Exp $
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.TH VACATION 1 "$Date: 2004-09-24 06:50:37 $"
|
||||
.TH VACATION 1 "$Date: 2006-03-08 07:43:47 $"
|
||||
.SH 名称
|
||||
.B vacation
|
||||
\- 電子メールの自動応答器
|
||||
|
@ -157,12 +157,13 @@ vacation
|
|||
.I interval
|
||||
日に設定します。デフォルトは 1 週間です。間隔を
|
||||
``0''
|
||||
に設定すると、全てのメッセージに対して自動応答を行ないます。
|
||||
または
|
||||
``infinite''
|
||||
(実際には数字以外の文字ならなんでも) を設定すると、
|
||||
(実際には数字以外の文字ならなんでも)に設定すると、
|
||||
同じ送信者には一度しか自動応答を行ないません。
|
||||
.B \-r
|
||||
オプションは、vacation データベース初期化時のみ使用してください (前述の
|
||||
オプションは、vacation データベースが初期化されている時のみ使用してください
|
||||
(前述の
|
||||
.B \-i
|
||||
を参照してください)。
|
||||
.TP
|
||||
|
@ -239,7 +240,9 @@ sendmail(8)
|
|||
の行がヘッダに含まれているメールに対しても自動応答は送られません。
|
||||
あなたへのメールの送信者のアドレスは
|
||||
ホームディレクトリの
|
||||
.I \&.vacation.db
|
||||
.I .vacation.db
|
||||
または
|
||||
.I .vacation.{dir,pag}
|
||||
ファイル中で
|
||||
db(3)
|
||||
または
|
||||
|
@ -247,10 +250,8 @@ dbm(3)
|
|||
を使用して管理されます。
|
||||
.PP
|
||||
.B vacation
|
||||
または
|
||||
.I .vacation.{dir,pag}
|
||||
ではホームディレクトリに
|
||||
.I .vacation.msg
|
||||
.IR .vacation.msg
|
||||
ファイルを置くことによって、
|
||||
あなたへのメールの送信者へのメッセージを指定します。
|
||||
このファイルは (ヘッダを含む) 完全なメッセージでなければなりません。
|
||||
|
|
|
@ -66,13 +66,14 @@
|
|||
.\"
|
||||
.Ss 概要
|
||||
.\"
|
||||
伝統的にユーザスレッディングは、次の 2 つの方法の 1 つで実装されてきました。
|
||||
全てのスレッドはユーザ空間で管理され、カーネルは全てのスレッディングを
|
||||
認識しない方法
|
||||
伝統的にユーザスレッディングは、
|
||||
次の 2 つの方法のうちのどちらか一方で実装されてきました。
|
||||
まず全てのスレッドはユーザ空間で管理され、
|
||||
カーネルはスレッディングを全く認識しない方法
|
||||
.Dq ( "N 対 1"
|
||||
としても知られています)。
|
||||
または、個々のスレッドのために共通のメモリ空間を分け合う
|
||||
分離したプロセスを作成する方法
|
||||
そして、個々のスレッドに対して
|
||||
共通のメモリ空間を共有する別々のプロセスが生成される方法
|
||||
.Dq ( "N 対 N"
|
||||
としても知られています)。
|
||||
これらのアプローチは長所と短所を持っています:
|
||||
|
@ -85,146 +86,151 @@
|
|||
.El
|
||||
.Pp
|
||||
KSE システムはユーザスレッディングおよびカーネルスレッディングの両方の
|
||||
長所を成し遂げる混成のアプローチです。
|
||||
長所を生かす複合型アプローチです。
|
||||
KSE システムの根本的な哲学は、スケジューリングを決定するための
|
||||
ユーザスレッディングライブラリの能力を全く取り除くことなく、
|
||||
ユーザスレッディングのためのカーネルサポートを与えることです。
|
||||
カーネルからユーザスレッドへの upcall 機構は、スケジューリングの決定が
|
||||
必要とされるときにはいつでも、ユーザスレッディングライブラリに制御を
|
||||
移すために使用されます。
|
||||
任意の数のユーザスレッドは、カーネルによって供給される固定数の仮想 CPU 上に
|
||||
多重化されます。
|
||||
ユーザスレッディングライブラリの能力を全く減じることなく、
|
||||
ユーザスレッディングのためのカーネルサポートを実現することです。
|
||||
スケジューリングの決定が必要になった時に
|
||||
ユーザスレッディングライブラリに制御を渡すために、
|
||||
カーネルからユーザスレッドへの upcall 機構を使用します。
|
||||
任意の数のユーザスレッドが、
|
||||
カーネルによって供給される固定数の仮想 CPU 上に多重化されます。
|
||||
これは
|
||||
.Dq "N 対 M"
|
||||
スレッディング機構と考えることができます。
|
||||
.Pp
|
||||
このアプローチのいくつかの一般的な裏の意味は以下を含みます:
|
||||
このアプローチが暗に意味する一般的な特性としては以下のものがあります:
|
||||
.Bl -bullet
|
||||
.It
|
||||
ユーザプロセスはマルチプロセッサマシン上で複数のスレッドを
|
||||
同時に実行することが可能です。
|
||||
カーネルは、プロセス仮想 CPU がそれが望むようにスケジュールすることを
|
||||
承諾します。これらは、実際の複数の CPU 上で同時に実行されることができます。
|
||||
カーネルは、プロセスに対して自由にスケジュールできる仮想 CPU 群を提供します。
|
||||
これらは、複数の実 CPU 上で同時に実行できます。
|
||||
.It
|
||||
スレッドがブロックされたときにユーザプロセスが他のスレッドをスケジュール
|
||||
できるように、カーネル内でブロックする全ての操作は非同期になります。
|
||||
スレッドがブロックされた際にユーザプロセスが
|
||||
他のスレッドをスケジュールできるよう、
|
||||
カーネル内でブロックする全ての操作は非同期になります。
|
||||
.It
|
||||
同じプロセス内の複数のスレッドスケジューラが可能で、それらは互いに独立して
|
||||
操作することができます。
|
||||
同じプロセス内に複数のスレッドスケジューラが存在可能で、
|
||||
それらは互いに独立して動くことができます。
|
||||
.El
|
||||
.\"
|
||||
.Ss 定義
|
||||
.\"
|
||||
KSE はユーザプロセスが実際に同時の複数の
|
||||
KSE はユーザプロセスが複数の
|
||||
.Sy スレッド
|
||||
の実行を可能にします。
|
||||
これらの幾つかは、その他のスレッドが実行中またはユーザ空間で
|
||||
ブッロクされている間に、カーネルの中でブロックされることが可能です。
|
||||
を同時に実行できるようにします。
|
||||
スレッドのうちの幾つかは、
|
||||
その他のスレッドがユーザ空間で実行中またはブロックされている間であっても、
|
||||
カーネル内でブロックさせて構いません。
|
||||
.Sy カーネルスケジューリングの実体
|
||||
(kernel scheduling entity, KSE) はスレッドの実行のためにプロセスに承諾された
|
||||
(kernel scheduling entity, KSE) はスレッドの実行のためにプロセスに供された
|
||||
.Dq "仮想 CPU"
|
||||
です。
|
||||
現在実行されているスレッドは常に、厳密に 1 つのユーザ空間または
|
||||
カーネルの中で動作しているどちらかの KSE に関連付けられています。
|
||||
その KSE はそのスレッドに
|
||||
現在実行されているスレッドは、
|
||||
ユーザ空間またはカーネルのどちらで実行されていても、
|
||||
厳密に 1 つの KSE に常に関連付けられています。
|
||||
KSE はスレッドに
|
||||
.Sy 割り当てられている
|
||||
と言われます。
|
||||
といえます。
|
||||
.Pp
|
||||
その KSE が関連付けられた
|
||||
ある KSE が関連付けられた
|
||||
.Sy メールボックス
|
||||
(下記参照) を持っていて、そのスレッドが関連付けられた
|
||||
(下記参照) を持ち、そのスレッドが関連付けられた
|
||||
.Sy スレッドメールボックス
|
||||
(これも下記参照) を持っていて、さらに以下のどれかが発生したときに、その KSE が
|
||||
(これも下記参照) を持ち、さらに以下のどれかが発生したとき、その KSE は
|
||||
.Sy 割り当てられていない
|
||||
状態になり、関連付けられたスレッドは停止されます:
|
||||
状態になり、関連付けられたスレッドは中断されます:
|
||||
.Bl -bullet
|
||||
.It
|
||||
そのスレッドがブロックを伴うシステムコールを実行する。
|
||||
そのスレッドがブロックを伴うシステムコールを実行した。
|
||||
.It
|
||||
スレッドが、カーネルがすぐには満たすことが可能ではない他の全ての要求を行う。
|
||||
例えばディスクからデータを読み出すために必要なメモリページに
|
||||
アクセスすることでページフォルト発生させることです。
|
||||
スレッドがカーネルがすぐには満たすことができない要求を行った。
|
||||
例えばディスクからデータを読み出す必要があるメモリページにアクセスし
|
||||
ページフォルトを起こした。
|
||||
.It
|
||||
カーネル内で先にブロックされていた他のスレッドが、カーネル内のその作業を
|
||||
完了し (または
|
||||
カーネル内で先にブロックされていた他のスレッドが、
|
||||
カーネル内の作業を完了し (または
|
||||
.Sy 割り込まれ )
|
||||
、ユーザ空間へ戻る準備ができ、さらに現在のスレッドがユーザ空間に
|
||||
戻ろうとしている。
|
||||
ユーザ空間へ戻れるようになり、
|
||||
さらに現在のスレッドがユーザ空間に戻っている最中だった。
|
||||
.It
|
||||
シグナルがプロセスに配信され、この KSE がそのシグナルを配信するために
|
||||
選択される。
|
||||
シグナルがプロセスに配信され、
|
||||
この KSE がそのシグナルを配信するために選択された。
|
||||
.El
|
||||
.Pp
|
||||
言い換えると、スケジューリングの決定が行われなければならなくなるとすぐに、
|
||||
言い換えると、スケジューリングの決定が行われようとするとき、
|
||||
その KSE は割り当てられていない状態になります。
|
||||
なぜならば、カーネルはそのプロセスの他のどの実行可能なスレッドを
|
||||
スケジュールするべきかを推定しないからです。
|
||||
スケジュールするべきか推定しないからです。
|
||||
割り当てられていない KSE は常に可能な限り早く、
|
||||
ユーザプロセスが次に利用するべき KSE をどのように決定するかを可能にする
|
||||
ユーザプロセスがその KSE を次にどのように利用するかを決定できる
|
||||
.Sy upcall
|
||||
機構 (下記に記述されています) を介してユーザ空間に戻ります。
|
||||
KSE は常に、割り当てが解除される前に、カーネル内で可能な限り多くの作業を
|
||||
完了させます。
|
||||
機構 (後述) を介してユーザ空間に戻ります。
|
||||
KSE は常に、割り当てが解除される前に、
|
||||
カーネル内で可能な限り多くの作業を完了させます。
|
||||
.Pp
|
||||
.Sy "KSE グループ"
|
||||
は均等にスケジュールされ、その KSE グループに関連付けられた同一のスレッドの
|
||||
プールへのアクセスを共有する KSE の集合です。
|
||||
KSE グループはカーネルスケジューリングの優先度が割り当てられることができる
|
||||
は均等にスケジュールされ、
|
||||
その KSE グループに関連付けられた同一のスレッドプールへのアクセスを共有する
|
||||
KSE の集合です。
|
||||
KSE グループはカーネルスケジューリングの優先度が割り当てられる
|
||||
最小の実体です。
|
||||
プロセスのスケジューリングとアカウンティングのため、それぞれの KSE グループは
|
||||
伝統的なスレッド化されていないプロセスと同様にカウントします。
|
||||
プロセスのスケジューリングとアカウンティングの目的には、
|
||||
それぞれの KSE グループは
|
||||
伝統的なスレッド化されていないプロセスと同様にみなされます。
|
||||
KSE グループの中の個々の KSE は実際上、見分けがつきません。
|
||||
また、KSE グループの中のあらゆる KSE は、その KSE グループに
|
||||
関連付けられた (カーネル内の) あらゆる実行可能なスレッドに、
|
||||
カーネルによって割り当てられることができます。
|
||||
実際問題として、カーネルはキャッシュの動作を最適化するために、スレッドと
|
||||
実際の CPU との密接な関係を保存しようと試みますが、
|
||||
これはユーザプロセスには不可視です。
|
||||
(密接な関係はまだ実装されていません)
|
||||
また、KSE グループの中のすべての KSE は、その KSE グループに
|
||||
関連付けられた (カーネル内の) どの実行可能なスレッドに対してでも
|
||||
カーネルによって割り当てられえます。
|
||||
実際問題として、カーネルはキャッシュの動作を最適化するために、
|
||||
スレッドと実際の CPU 群との密接な関係を保存しようと試みますが、
|
||||
これはユーザプロセスには不可視です
|
||||
(密接な関係はまだ実装されていません)。
|
||||
.Pp
|
||||
それぞれの KSE はユーザプロセスによって供給された唯一の
|
||||
それぞれの KSE はユーザプロセスによって供給される独自の
|
||||
.Sy "KSE メールボックス"
|
||||
を持っています。
|
||||
メールボックスは
|
||||
.Sy "upcall 関数"
|
||||
へのポインタを含む制御構造体とユーザスタックで構成されています。
|
||||
へのポインタとユーザスタックを含む制御構造体で構成されています。
|
||||
KSE は割り当てを解除されると必ずこの関数を実行します。
|
||||
カーネルはこの構造体を、実行可能になっているスレッド、およびそれぞれの
|
||||
upcall の前に配信されたシグナルについての情報を更新します。
|
||||
カーネルはこの構造体の、実行可能になっているスレッド、およびそれぞれの
|
||||
upcall の前に配信されていたシグナルについての情報を更新します。
|
||||
upcall はクリティカルセクションの間は、ユーザスレッドの
|
||||
スケジューリングコードによって一時的にブロックされることがあります。
|
||||
.Pp
|
||||
同様にそれぞれのユーザスレッドは唯一の
|
||||
同様にそれぞれのユーザスレッドは独自の
|
||||
.Sy "スレッドメールボックス"
|
||||
を持っています。
|
||||
カーネルとユーザスレッドスケジューラが通信するときに、
|
||||
スレッドはこれらのメールボックスへのポインタを使用して参照されます。
|
||||
スレッドはこれらのメールボックスへのポインタを通して参照されます。
|
||||
それぞれの KSE のメールボックスは、その KSE が現在実行している
|
||||
ユーザスレッドのメールボックスへのポインタを含んでいます。
|
||||
このポインタはカーネル内でスレッドがブロックするときに、保存されます。
|
||||
.Pp
|
||||
カーネル内でブロックされていたスレッドがユーザ空間に戻る準備ができたときには
|
||||
必ず、そのスレッドは KSE グループの
|
||||
そのスレッドは必ず、KSE グループの
|
||||
.Sy 完了した
|
||||
スレッドのリストに追加されます。
|
||||
このリストはスレッドメールボックスのリンクされたリストとして、
|
||||
次の upcall でユーザコードに公開されます。
|
||||
.Pp
|
||||
カーネルの中で同時にブロックされることができる KSE グループの中の
|
||||
次の upcall でユーザコードに提示されます。
|
||||
.Pp
|
||||
カーネル内で同時にブロックされる KSE グループ中の
|
||||
スレッド数には、カーネルに起因する制限があります (現在、この数はユーザには
|
||||
不可視です)。
|
||||
この制限に達したときには、スレッドの 1 つが完了するまでの間 (または
|
||||
この制限に達したとき、スレッドの 1 つが完了するまでの間 (または
|
||||
シグナルが配信されるまでの間)、upcall はブロックされ、
|
||||
その KSE グループのための作業は何も実行されません。
|
||||
.\"
|
||||
.Ss KSE の管理
|
||||
.\"
|
||||
マルチスレッド化するためには、プロセスは初めに
|
||||
マルチスレッドで動くためには、プロセスは初めに
|
||||
.Fn kse_create
|
||||
を実行しなければなりません。
|
||||
.Fn kse_create
|
||||
システムコールは新しい KSE を
|
||||
作成します (本当に最初の実行を除く、下記を参照してください)。
|
||||
作成します (本当に最初の実行を除く、下記参照)。
|
||||
その KSE は
|
||||
.Fa mbx
|
||||
によって指されるメールボックスと関連付けられます。
|
||||
|
@ -235,196 +241,195 @@ upcall
|
|||
そのため、それらの KSE は直ちに upcall します。
|
||||
.Pp
|
||||
それぞれのプロセスは初めは 1 つのユーザスレッドを
|
||||
実行する 1 つの KSE グループの中の 1 つの KSE を持っています。
|
||||
その KSE は関連付けられたメールボックスを持っていないため、そのスレッドに
|
||||
割り当てられたままでなければならず、upcall を全く実行しません。
|
||||
この結果は伝統的で、スレッド化されていない様式の操作です。
|
||||
そのため、特別な場合として、
|
||||
実行する 1 つの KSE グループの中に 1 つの KSE を持っています。
|
||||
その KSE は関連付けられたメールボックスを持っていないため、
|
||||
そのスレッドに割り当てられたままでなければならず、
|
||||
upcall を全く実行しません。
|
||||
この結果は伝統的で、スレッド化されていない形態での処理です。
|
||||
そのため、特別な場合として、この最初のスレッドによる
|
||||
.Fa newgroup
|
||||
を 0 にしたこの最初のスレッドによる
|
||||
が 0 である
|
||||
.Fn kse_create
|
||||
の最初の呼び出しは、新しい KSE を作成しません。
|
||||
代わりに、単に現在の KSE を与えられた KSE メールボックスに関連付け、
|
||||
直ちに upcall しない結果となります。
|
||||
しかしながら、次にそのスレッドがブロックし、要求された条件になったときに、
|
||||
upcall がトリガされます。
|
||||
直後の upcall は起こしません。
|
||||
しかしながら、次にそのスレッドがブロックし必要とされる条件がそろったときには、
|
||||
upcall が引き起こされます。
|
||||
.Pp
|
||||
カーネルは 1 つの KSE グループの中にシステムの物理的な CPU の数 (この数は
|
||||
.Xr sysctl 3
|
||||
変数の
|
||||
変数
|
||||
.Va hw.ncpu
|
||||
として利用可能です) より多い KSE の存在を許可しません。
|
||||
CPU より多い KSE を持つことは、その追加の KSE が単に
|
||||
その他の KSE と実 CPU へのアクセスを競合するだけであるため、
|
||||
として取得可能です) より多い KSE の存在を許可しません。
|
||||
CPU より多い数の KSE を持つことは、その追加の KSE が単に
|
||||
その他の KSE と実 CPU 群へのアクセスを競合するだけであるため、
|
||||
ユーザプロセスにとって全く価値を増やさないでしょう。
|
||||
そのため、余分な KSE は常に脇に追いやられ、その結果アプリケーションは
|
||||
まさにより少ない KSE を持っていることと同じになるでしょう。
|
||||
どんなに多くの任意のユーザスレッドが存在することになっても、
|
||||
利用可能な KSE へのアプリケーションのユーザスレッドの割り当てを取り扱う
|
||||
ためのユーザスレッドスケジューラに渡ります。
|
||||
より少ない KSE を持っていることと全く同じになるでしょう。
|
||||
しかし、アプリケーションのユーザスレッドを利用可能な KSE へマッピングする
|
||||
ユーザスレッドスケジューラの数までは、
|
||||
任意の数のユーザスレッドが存在しても構いません。
|
||||
.Pp
|
||||
.Fn kse_exit
|
||||
システムコールは、現在実行しているスレッドに割り当てられている KSE を
|
||||
破壊させます。
|
||||
この KSE がこの KSE グループの中の最後の 1 つの場合には、その KSE グループに
|
||||
関連付けられているスレッドがカーネル内でブロックされたまま残ってはなりません。
|
||||
このシステムコールはエラーが無い場合には、戻りません。
|
||||
システムコールは、現在実行しているスレッドに割り当てられている
|
||||
KSE を破棄します。
|
||||
この KSE がこの KSE グループの中の最後の 1 つの場合には、
|
||||
その KSE グループに関連付けられているスレッドが、
|
||||
カーネル内でブロックされたまま残っていてはなりません。
|
||||
このシステムコールはエラーがない限り、戻りません。
|
||||
.Pp
|
||||
特別な場合として、最後に残っている KSE グループの中の最後に残っている KSE が
|
||||
このシステムコールを実行する場合には、その KSE は破壊されません。
|
||||
このシステムコールを実行する場合には、その KSE は破棄されません。
|
||||
代わりに、その KSE はそのメールボックスとの関連付けを失うだけで、
|
||||
.Fn kse_exit
|
||||
は正常に戻ります。
|
||||
これはそのプロセスを元に、つまりスレッド化されていない状態に戻します。
|
||||
これはそのプロセスを元のスレッド化されていない状態に戻します。
|
||||
.Pp
|
||||
.Fn kse_release
|
||||
システムコールは、必要でなくなったときに、現在実行しているスレッドに
|
||||
関連付けられている KSE を
|
||||
システムコールは、現在実行しているスレッドに関連付けられている
|
||||
KSE が必要でなくなったときに、
|
||||
.Dq 一時保管
|
||||
するために使用されます。
|
||||
例えば、実行可能なユーザスレッドよりも利用可能な KSE の方が多いときです。
|
||||
そのスレッドは upcall に変化しますが、そのようにするための新しい理由が
|
||||
発生するまでの間スケジュールされることはありません。
|
||||
例えば、以前にブロックされていたスレッドが実行可能になる、または
|
||||
タイムアウトが発生するなどです。
|
||||
成功の場合には、
|
||||
するために使用します。
|
||||
例えば、実行可能なユーザスレッドよりも利用可能な KSE の方が多い場合です。
|
||||
そのスレッドは upcall へ転向しますが、
|
||||
新しくスケジュールする理由ができるまではそのようにされることはありません。
|
||||
例えば、以前にブロックされていたスレッドが実行可能になる、
|
||||
またはタイムアウトが発生するといった場合です。
|
||||
成功した場合には、
|
||||
.Fn kse_release
|
||||
は呼び出し側に戻りません。
|
||||
.Pp
|
||||
.Fn kse_switchin
|
||||
システムコールは、新しいスレッドがそのスレッドのコンテキストに
|
||||
切り替わるために、UTS によって使用されることが可能です。
|
||||
システムコールは、UTS (ユーザスレッドスケジューラ) が
|
||||
スレッドのコンテキストを切り替える選択を新たにした際に使用できます。
|
||||
.Fn kse_switchin
|
||||
の使用はマシンに依存します。
|
||||
あるプラットフォームでは新しいコンテキストに切り替わるためのシステムコールを
|
||||
必要としません。
|
||||
一方、他のプラットフォームでは同様の場合に要求されます。
|
||||
あるプラットフォームでは新しいコンテキストへの切り替えにシステムコールを
|
||||
必要としませんが、別のプラットフォームでは特にこの場面で要求されます。
|
||||
.Pp
|
||||
.Fn kse_wakeup
|
||||
システムコールは
|
||||
.Fn kse_release
|
||||
の反対です。
|
||||
.Fa mbx
|
||||
によって指されているメールボックスに関連付けられた (一時保管された) KSE を
|
||||
upcall にすることで起こします。
|
||||
その KSE がすでに他の理由で起こされていた場合には、このシステムコールは
|
||||
何も起こりません。
|
||||
によって指されているメールボックスに関連付けられた (一時保管された)
|
||||
KSE を起こして upcall させます。
|
||||
その KSE がすでに他の理由で起こされていた場合には、
|
||||
このシステムコールは何の効果もありません。
|
||||
.Fa mbx
|
||||
引数は
|
||||
.Dq "現在の KSE グループの中の全ての KSE"
|
||||
を指定するために
|
||||
引数に
|
||||
.Dv NULL
|
||||
にすることができます。
|
||||
を指定すると
|
||||
.Dq "現在の KSE グループの中のどの KSE でもよい"
|
||||
という指定になります。
|
||||
.Pp
|
||||
.Fn kse_thr_interrupt
|
||||
システムコールは、現在ブロックされているスレッドに
|
||||
割り込むために使用されます。
|
||||
そのスレッドはカーネルの中でブロックされているか、
|
||||
KSE に割り当てられて (例えば、実行中) いなければなりません。
|
||||
そのスレッドはその後、割り込まれたという印を付けられます。
|
||||
スレッドが割り込みを発生させるシステムコールを実行するとできるだけ
|
||||
早く (または、スレッドがカーネルの中ですでにブロックされてると直ちに)、
|
||||
カーネル操作が完了していないかもしれないのにもかかわらず、
|
||||
システムコールは、現在ブロックされているスレッドを一時停止させます。
|
||||
そのスレッドはカーネル内でブロックされているか、
|
||||
KSE に割り当てられて (つまり実行中) いるか、どちらかでなければなりません。
|
||||
その後、そのスレッドには割り込まれたという印が付けられます。
|
||||
スレッドが割り込み可能なステムコールを実行するとできるだけ早く
|
||||
(または、スレッドがカーネル内ですでにブロックされてる場合には直ちに)、
|
||||
カーネル処理が完了していない可能性があるかにかかわらず
|
||||
そのスレッドは再度実行可能にされます。
|
||||
割り込まれたシステムコール上のこの効果は、すでにシグナルによって
|
||||
割り込まれていた場合と同様です。
|
||||
割り込まれたシステムコール上でのこの効果は、
|
||||
すでにシグナルによって割り込まれていた場合と同様です。
|
||||
通常、これは
|
||||
.Va errno
|
||||
に
|
||||
.Er EINTR
|
||||
が設定されてエラーが返されたことを意味します。
|
||||
を設定してエラーを返したことを意味します。
|
||||
.\"
|
||||
.Ss シグナル
|
||||
.\"
|
||||
.Pp
|
||||
現在の実装は特別のシグナルスレッドを作成します。
|
||||
現在の実装は特別なシグナルスレッドを作成します。
|
||||
プロセス内のカーネルスレッド (KSE) はすべてのシグナルをマスクし、
|
||||
シグナルスレッドだけがプロセスへ配信されるシグナルを待ちます。
|
||||
シグナルスレッドだけがプロセスへ配信されるシグナルを待ち受けます。
|
||||
シグナルスレッドはユーザスレッドへのシグナルの
|
||||
ディスパッチに対して責任があります。
|
||||
ディスパッチに対して責任を持ちます。
|
||||
.\" responsible for = 《be ~》~に対して責任がある、~に関与する
|
||||
.Pp
|
||||
この弱点は、多重スレッドが
|
||||
.Fn execve
|
||||
システムコールを呼び出すなら、そのシグナルマスクとペンディングシグナルは
|
||||
カーネルで利用可能でないかもしれないことです。
|
||||
それらはユーザランドで格納され、カーネルはどこでそれらが得られるか知りません。
|
||||
システムコールを呼び出した場合、そのシグナルマスクとペンディングシグナルは
|
||||
カーネルで利用できないかもしれないことです。
|
||||
それらはユーザランドで格納され、
|
||||
カーネルはどこからそれを得ればよいかわかりません。
|
||||
しかしながら、
|
||||
.Tn POSIX
|
||||
ではそれらは復元され、新しいプロセスに渡す必要があります。
|
||||
ではそれらを復元して、新しいプロセスに渡すことを求めています。
|
||||
スレッドが
|
||||
.Fn execve
|
||||
呼び出しの前のスレッドのマスク設定は、
|
||||
古いプロセスがブロックされている状態かもしれない任意のペンディングシグナルを
|
||||
カーネルに再配信されないとき、問題に近似しています。
|
||||
そして、新しいシグナルがマスクの設定と
|
||||
を呼び出す前にマスクを行うだけでは、
|
||||
元のプロセスがブロックしていたペンディングシグナルを
|
||||
カーネルに再び戻すことができず、またマスクを設定したあと
|
||||
.Fn execve
|
||||
の間のプロセスに配信されるかもしれないウィンドウを許可します。
|
||||
.\" is only a close approximation to the problem の訳はあやしい
|
||||
が呼ばれる間にプロセスにシグナルが配信されるウィンドウの発生を
|
||||
許してしまうため、よく似た近似にしかなりません。
|
||||
.Pp
|
||||
当分、この問題は特別の組み合わせ
|
||||
今のところ、この問題は
|
||||
.Fn kse_thr_interrupt
|
||||
システムコールに
|
||||
.Fn kse_thr_interrupt Ns / Ns Fn execve
|
||||
モードを
|
||||
の特別な組み合わせモードを追加することにより解決されています。
|
||||
.Fn kse_thr_interrupt
|
||||
システムコールに追加することによって解決されています。
|
||||
.\" For now = 差し当たり、当分は
|
||||
.Fn kse_thr_interrupt
|
||||
システムコールはサブコマンド
|
||||
システムコールにはサブコマンド
|
||||
.Dv KSE_INTR_EXECVE
|
||||
があり、それは
|
||||
.Vt kse_execv_args
|
||||
構造体を受け付けることができ、シグナルを調整して、次に不可分に
|
||||
.Fn execve()
|
||||
呼び出しに変換できます。
|
||||
.\" 原文: .Fn execve() は .Fn execve の誤り。
|
||||
追加のペンディングシグナルと正しいシグナルマスクは
|
||||
このようにしてカーネルに渡すことができます。
|
||||
構造体を受け付けて、シグナルを調整した後に不可分に
|
||||
.Fn execve
|
||||
呼び出しへ変換できるようにします。
|
||||
.\" 原文: .Fn execve() は .Fn execve の誤り。HEAD, RELENG_6では修正済
|
||||
このようにして追加のペンディングシグナルと正しいシグナルマスクを
|
||||
カーネルに渡すことができます。
|
||||
.\" in this way = かくのごとく、こういう調子に、このような方法で、このように(して)、
|
||||
スレッドライブラリは、
|
||||
.Fn execve
|
||||
スステムコールをくつがえして、それを
|
||||
.Fn kse_intr_interrupt
|
||||
呼び出しに変換し、多重スレッドを
|
||||
システムコールを上書きし、多重スレッドが
|
||||
.Fn exec
|
||||
を行なう前にペンディングシグナルと正しいシグナルマスクに
|
||||
復元できるようにします。
|
||||
この問題の解決法は変更するかもしれません。
|
||||
を行う前にペンディングシグナルと正しいシグナルマスクを復元できるよう、
|
||||
.Fn kse_intr_interrupt
|
||||
呼び出しに変換します。
|
||||
この問題の解決法は変更されるかもしれません。
|
||||
.\"
|
||||
.Ss KSE メールボックス
|
||||
.\"
|
||||
それぞれの KSE は
|
||||
.In sys/kse.h
|
||||
で定義されたユーザとカーネルの通信のための唯一のメールボックスがあります。
|
||||
そのフィールドのいくつかは次の通りです:
|
||||
で定義されているユーザとカーネルの通信のために独自のメールボックスを持ちます。
|
||||
フィールドの一部は次の通りです:
|
||||
.Pp
|
||||
.Va km_version
|
||||
はこの構造体のバージョンを表し、
|
||||
.Dv KSE_VER_0
|
||||
でなければなりません。
|
||||
と等しくなければなりません。
|
||||
.Va km_udata
|
||||
はカーネルによって無視される不透明なポインタです。
|
||||
はカーネルには無視される不透明なポインタです。
|
||||
.Pp
|
||||
.Va km_func
|
||||
はその KSE の upcall 関数を指します。
|
||||
これは、その KSE が存在している間は有効であり続けなければならない
|
||||
これは、その KSE の生存期間を通して有効であり続けなければならない
|
||||
.Va km_stack
|
||||
を使用して実行されます。
|
||||
.Pp
|
||||
.Va km_curthread
|
||||
は常に、もしあれば現在この KSE に割り当てられているスレッドを、または
|
||||
そうでなければ
|
||||
はもし現在この KSE に割り当てられているスレッドがあればそれを、
|
||||
なければ
|
||||
.Dv NULL
|
||||
を指しています。
|
||||
このフィールドは、カーネルとユーザプロセスの両方によって以下のように
|
||||
更新されます。
|
||||
このフィールドは、
|
||||
カーネルとユーザプロセスの両方によって以下のように更新されます。
|
||||
.Pp
|
||||
.Va km_curthread
|
||||
が
|
||||
.Dv NULL
|
||||
ではないときには、
|
||||
それは現在実行中のスレッドのメールボックスを指しているものとみなされ、
|
||||
割り当て解除されることができます。
|
||||
割り当て解除可能です。
|
||||
例えば、スレッドがカーネル内でブロックする場合です。
|
||||
それから、カーネルはブロックされたスレッドの
|
||||
その後、カーネルはブロックされたスレッドの
|
||||
.Va km_curthread
|
||||
の内容を保存して
|
||||
.Va km_curthread
|
||||
|
@ -438,9 +443,9 @@ KSE
|
|||
が
|
||||
.Dv NULL
|
||||
のときには、カーネルはこの KSE の upcall を決して実行しません。
|
||||
言い換えると、KSE はたとえブロックしたとしても、そのスレッドに
|
||||
割り当てられたままとなります。
|
||||
その KSE が間に入り込む upcall によって混乱するであろうクリティカルな
|
||||
言いかえると、KSE はたとえブロックしたとしても、
|
||||
そのスレッドに割り当てられたままとなります。
|
||||
KSE が upcall が間にはいることによって混乱を起こすような危ない
|
||||
ユーザスレッドスケジューラのコードを実行している間、特に
|
||||
.Fn km_func
|
||||
それ自身を実行している間は、
|
||||
|
@ -449,110 +454,110 @@ KSE
|
|||
.Dv NULL
|
||||
でなければなりません。
|
||||
.Pp
|
||||
全ての upcall の中で
|
||||
どのような upcall であれ、
|
||||
.Fn km_func
|
||||
を実行する前に、カーネルは常に
|
||||
.Va km_curthread
|
||||
を
|
||||
.Dv NULL
|
||||
に設定します。
|
||||
一度、ユーザスレッドスケジューラが実行するべき新しいスレッドを選んだら、
|
||||
そのスレッドのメールボックスの
|
||||
一度ユーザスレッドスケジューラが実行すべき新しいスレッドを選んだら、
|
||||
.Va km_curthread
|
||||
を指すようにし、upcall を再度有効化し、それからそのスレッドを再開するべきです。
|
||||
がそのスレッドのメールボックスを指すようにし、
|
||||
upcall を再度有効化し、それからそのスレッドを再開するべきです。
|
||||
.Em 注意 :
|
||||
ユーザスレッドスケジューラによる
|
||||
.Va km_curthread
|
||||
の変更は、
|
||||
新しいスレッドのコンテキストのロードについて不可分でなければなりません。
|
||||
依然として有効な情報がそこから読み出されるべき時に、
|
||||
新しいスレッドのコンテキストのロードを不可分に行わなければなりません。
|
||||
依然として有効な情報がそこから読み出し可能なときに
|
||||
ブロッキング非同期操作によってスレッドのコンテキスト領域が
|
||||
変更されるかもしれない状況を避けるためです。
|
||||
変更されえる状況を避けるためです。
|
||||
.Pp
|
||||
.Va km_completed
|
||||
は最近の upcall 以降にカーネル内での処理を終えたユーザスレッドの
|
||||
は最後に実行された upcall 以降にカーネル内での処理を終えたユーザスレッドの
|
||||
リンクされたリストを指しています。
|
||||
そのユーザスレッドスケジューラは、これらのスレッドを
|
||||
スケジューラが所有する実行可能キューに戻すべきです。
|
||||
upcall に帰着する (同期または非同期に) カーネル操作を
|
||||
完了した KSE グループ内の各々のスレッドは、確実に 1 つの KSE の
|
||||
ユーザスレッドスケジューラは、
|
||||
これらのスレッドをスケジューラが所有する実行可能キューに戻すべきです。
|
||||
upcall に帰着する (同期または非同期) カーネル操作を完了した
|
||||
KSE グループ内の各々のスレッドは、確実に 1 つの KSE の
|
||||
.Va km_completed
|
||||
にリンクされることが保証されます。
|
||||
しかしながら、そのグループの中のどの KSE かは不定です。
|
||||
にリンクされることが保証されますが、
|
||||
グループの中のどの KSE かは決まっていません。
|
||||
その上、その完了はたった 1 つの upcall でしか報告されません。
|
||||
.Pp
|
||||
.Va km_sigscaught
|
||||
はその前のプロセス内の全ての KSE への upcall 以降に、
|
||||
にはその前のプロセス内の任意の KSE への upcall 以降に、
|
||||
このプロセスによって捕まえられたシグナルのリストが含まれています。
|
||||
そのユーザプロセスの中に、
|
||||
ユーザプロセスの中に、
|
||||
メールボックスに関連付けられた KSE が 1 つ以上存在する限りは、
|
||||
シグナルは伝統的な方法ではなくこの方法で配信されます。
|
||||
(これはまだ実装されておらず、変更されるかもしれません)
|
||||
シグナルは伝統的な方法ではなくこの方法で配信されます
|
||||
(これはまだ実装されておらず、変更されるかもしれません)。
|
||||
.Pp
|
||||
.Va km_timeofday
|
||||
は、それぞれの upcall の前にカーネルによって現在のシステム時刻に設定されます。
|
||||
.Pp
|
||||
.Va km_flags
|
||||
は以下の全てのビット毎の OR を含むことができます:
|
||||
は以下の任意のビットを OR して同時に含むことができます:
|
||||
.Bl -tag -width indent
|
||||
.It Dv KMF_NOUPCALL
|
||||
upcalls が起きないようにブロックします。
|
||||
upcall が起きないようにブロックします。
|
||||
スレッドは何らかのクリティカルセクション (危険域) にあります。
|
||||
.It Dv KMF_NOCOMPLETED , KMF_DONE , KMF_BOUND
|
||||
このスレッドは、永久に KSE に結びつけられると考えられるべきで、
|
||||
スレッド化されていないプロセスとそっくりに扱われます。
|
||||
.\" 原文: considerred は considered の誤り。
|
||||
.\" 原文: considerred は considered の誤り。Rev1.16 で修正済
|
||||
.\" considered to be = 《be ~》~であると考えられている[目されている]
|
||||
.\" much like = そっくりの、酷似の
|
||||
それはある意味では
|
||||
それはある意味
|
||||
.Dv KMF_NOUPCALL
|
||||
の
|
||||
.Dq 長期
|
||||
バージョンです。
|
||||
バージョンといえます。
|
||||
.\" in some ways = ある点[意味]で(は)、いろいろな意味で、いくつかの点で
|
||||
.It Dv KMF_WAITSIGEVENT
|
||||
シグナル配信スレッドに必要な特性を実装します。
|
||||
.\" 原文: charactersitics は # characteristics の誤り。
|
||||
.\" 原文: charactersitics は # characteristics の誤り。Rev1.16 で修正済
|
||||
.El
|
||||
.\"
|
||||
.Ss スレッドメールボックス
|
||||
.\"
|
||||
それぞれのユーザスレッドはそれに関連付けられた
|
||||
各ユーザスレッドは
|
||||
.In sys/kse.h
|
||||
で定義された唯一の
|
||||
で定義されている独自の
|
||||
.Vt "struct kse_thr_mailbox"
|
||||
がなければなりません。
|
||||
に関連付けられている必要があります。
|
||||
それは次のフィールドを含んでいます:
|
||||
.Pp
|
||||
.Va tm_udata
|
||||
はカーネルによって無視された不明瞭なポインタです。
|
||||
はカーネルによって無視される不透明なポインタです。
|
||||
.Pp
|
||||
.Va tm_context
|
||||
はユーザ空間内でスレッドがブロックされた時に、そのスレッドのための
|
||||
コンテキストを保存します。
|
||||
スレッドがはユーザ空間内でブロックされた時に、
|
||||
そのスレッドのためのコンテキストを保存します。
|
||||
このフィールドは完了したスレッドが
|
||||
.Va km_completed
|
||||
を介してユーザスレッドスケジューラに戻る前に、カーネルによっても更新されます。
|
||||
.Pp
|
||||
.Va tm_next
|
||||
はカーネルの upcall により戻った時に、
|
||||
カーネルによって upcall を使って戻される時に、
|
||||
.Va km_completed
|
||||
スレッドにリンクします。
|
||||
のスレッドをリンクします。
|
||||
このリストの最後は
|
||||
.Dv NULL
|
||||
でマークされます。
|
||||
でマークされています。
|
||||
.Pp
|
||||
.Va tm_uticks
|
||||
および
|
||||
.Va tm_sticks
|
||||
はそれぞれ、ユーザモードおよびカーネルモードの実行のための時間カウンタです。
|
||||
はそれぞれ、ユーザモードおよびカーネルモードにおける実行の時間カウンタです。
|
||||
これらのカウンタは統計クロック
|
||||
.Xr ( clocks 7
|
||||
を参照してください) の刻みをカウントします。
|
||||
参照) の刻みをカウントします。
|
||||
カーネル内でいずれかのスレッドがアクティブに実行中の間は、対応する
|
||||
.Va tm_sticks
|
||||
カウンタがインクリメントされます。
|
||||
ユーザ空間でいずれかの KSE 実行中で、その KSE の
|
||||
ユーザ空間でいずれかの KSE が実行中で、その KSE の
|
||||
.Va km_curthread
|
||||
ポインタが
|
||||
.Dv NULL
|
||||
|
@ -565,26 +570,24 @@ upcalls
|
|||
.Bl -tag -width indent
|
||||
.It Dv TMF_NOUPCALL
|
||||
.Dv KMF_NOUPCALL
|
||||
と同様です。
|
||||
と似ています。
|
||||
このフラグはクリティカルセクション (危険域) への upcall を禁止します。
|
||||
いくつかのアーキテクチャは、ある場所ともう片方でいくつかにあることを
|
||||
必要とします。
|
||||
いくつかのアーキテクチャではこれが必要になるのは 1 ヶ所ですが、
|
||||
他のアーキテクチャではまた別の場所で必要とします。
|
||||
.El
|
||||
.Sh 戻り値
|
||||
成功の場合には
|
||||
.Fn kse_create ,
|
||||
.Fn kse_wakeup
|
||||
および
|
||||
.Fn kse_thr_interrupt
|
||||
システムコールは 0 を返します。
|
||||
成功の場合には
|
||||
システムコールは成功した場合 0 を返します。
|
||||
.Fn kse_exit
|
||||
および
|
||||
.Fn kse_release
|
||||
システムコールは戻りません。
|
||||
システムコールは成功した場合戻りません。
|
||||
.Pp
|
||||
エラーの場合には、これら全てのシステムコールは 0 ではない
|
||||
エラーコードを返します。
|
||||
これら全てのシステムコールはエラーの場合には、
|
||||
0 ではないエラーコードを返します。
|
||||
.Sh エラー
|
||||
.Fn kse_create
|
||||
システムコールは次の場合に失敗します:
|
||||
|
@ -592,17 +595,16 @@ upcalls
|
|||
.It Bq Er ENXIO
|
||||
既に KSE グループの中にハードウェアプロセッサと同じ数の KSE が存在しています。
|
||||
.It Bq Er EAGAIN
|
||||
実行下の KSE グループのトータル数についてのシステムに課せられた制限を
|
||||
超過します。
|
||||
実行中の合計 KSE グループ数に関するシステム上の制限値を超過します。
|
||||
この制限は
|
||||
.Xr sysctl 3
|
||||
MIB 変数
|
||||
.Dv KERN_MAXPROC
|
||||
によって与えられます。
|
||||
(この制限はスーパユーザのためを除き、実際にはこれより 10 小さい値です)
|
||||
(この制限はスーパユーザ以外の場合、実際にはこれより 10 小さい値です)
|
||||
.It Bq Er EAGAIN
|
||||
ユーザがスーパユーザではなく、1 ユーザによる実行下の KSE グループの
|
||||
トータル数についてのシステムに課せられた制限を超過します。
|
||||
ユーザがスーパユーザではなく、1 ユーザへの実行中の合計 KSE グループ数
|
||||
に関するシステム上の制限値を超過します。
|
||||
この制限は
|
||||
.Xr sysctl 3
|
||||
MIB 変数
|
||||
|
@ -615,7 +617,7 @@ MIB
|
|||
.Dv RLIMIT_NPROC
|
||||
に対応するソフトリソース制限を超過します
|
||||
.Xr ( getrlimit 2
|
||||
を参照してください)。
|
||||
参照)。
|
||||
.It Bq Er EFAULT
|
||||
.Fa mbx
|
||||
引数がプロセスのアドレス空間の有効ではない部分のアドレスを指しています。
|
||||
|
@ -626,12 +628,12 @@ MIB
|
|||
.Bl -tag -width Er
|
||||
.It Bq Er EDEADLK
|
||||
現在の KSE はその KSE グループ内の最後であり、
|
||||
カーネル内でブロックされたその KSE グループに関連付けられたスレッドが
|
||||
その KSE グループに関連付けられたカーネル内でブロックされているスレッドが
|
||||
依然として 1 つ以上存在しています。
|
||||
.It Bq Er ESRCH
|
||||
現在の KSE は関連付けられたメールボックスを持っていません。
|
||||
例えば、そのプロセスが伝統的なスレッド化されていないモードで、
|
||||
実行しています (この場合はプロセスを終了するために
|
||||
つまり、そのプロセスは伝統的なスレッド化されていないモードで、
|
||||
動作しています (この場合はプロセスを終了するために
|
||||
.Xr _exit 2
|
||||
を使用します)。
|
||||
.El
|
||||
|
@ -641,8 +643,8 @@ MIB
|
|||
.Bl -tag -width Er
|
||||
.It Bq Er ESRCH
|
||||
現在の KSE は関連付けられたメールボックスを持っていません。
|
||||
例えば、そのプロセスが伝統的なスレッド化されていないモードで、
|
||||
実行しています。
|
||||
つまり、そのプロセスは伝統的なスレッド化されていないモードで
|
||||
動作しています。
|
||||
.El
|
||||
.Pp
|
||||
.Fn kse_wakeup
|
||||
|
@ -654,15 +656,15 @@ MIB
|
|||
.Dv NULL
|
||||
ではなく、
|
||||
.Fa mbx
|
||||
によって指されるメールボックスそのメールボックスが、そのプロセス内の
|
||||
いずれの KSE にも関連付けられていません。
|
||||
によって指されるメールボックスが、
|
||||
そのプロセス内のいずれの KSE にも関連付けられていません。
|
||||
.It Bq Er ESRCH
|
||||
.Fa mbx
|
||||
引数が
|
||||
.Dv NULL
|
||||
で、現在の KSE が関連付けられたメールボックスを持っていません。
|
||||
例えば、そのプロセスが伝統的なスレッド化されていないモードで、
|
||||
実行しています。
|
||||
現在の KSE は関連付けられたメールボックスを持っていません。
|
||||
つまり、そのプロセスは伝統的なスレッド化されていないモードで、
|
||||
動作しています。
|
||||
.El
|
||||
.Pp
|
||||
.Fn kse_thr_interrupt
|
||||
|
@ -670,8 +672,8 @@ MIB
|
|||
.Bl -tag -width Er
|
||||
.It Bq Er ESRCH
|
||||
.Fa tmbx
|
||||
に対応するスレッドが、現在プロセス内のいずれの KSE にも割り当てられていないか、
|
||||
カーネル内でブロックされています。
|
||||
に対応するスレッドが、現在プロセス内のいずれの KSE にも割り当てられても、
|
||||
カーネル内でブロックされてもいません。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr rfork 2 ,
|
||||
|
@ -709,6 +711,6 @@ KSE
|
|||
.An "Archie Cobbs" Aq archie@FreeBSD.org
|
||||
によって書かれました。
|
||||
.Sh バグ
|
||||
KSE のコードは開発中です。
|
||||
KSE のコードは現在も開発中です。
|
||||
.\" .Ud .
|
||||
.\" .Ud マクロは日本語では実装されていません。(池内)
|
||||
|
|
|
@ -284,16 +284,14 @@ struct cmsgcred {
|
|||
.Fa s
|
||||
はソケットを参照していません。
|
||||
.It Bq Er EMSGSIZE
|
||||
接続中にオープンされている権利 (ファイル記述子) を
|
||||
.Fn recvmsg
|
||||
システムコールは、接続時にデータをやりとりする権利 (ファイル記述子)
|
||||
を受信するために使用されました。
|
||||
.\" rights (file descriptors) that were in flight の訳は良くわからない。
|
||||
しかしながら、受信プログラムには受け付けるための
|
||||
空きファイル記述子スロットがありませんでした。
|
||||
この場合、記述子がクローズされ、
|
||||
システムコールを使用して受信しようとしました。
|
||||
しかし、受信側プログラムのにそれらを受け取るだけの
|
||||
十分な空きファイル記述子スロットがありませんでした。
|
||||
この場合、該当する記述子はクローズされ、保留されているデータは別の
|
||||
.Fn recvmsg
|
||||
への別の呼び出しによって、
|
||||
どんなペンディング (未解決) のデータも返すことができます。
|
||||
呼び出しで戻せます。
|
||||
.It Bq Er EAGAIN
|
||||
ソケットが非ブロッキングとマークされているとき、
|
||||
受信操作でブロックしました。
|
||||
|
|
|
@ -275,7 +275,7 @@ AT&T
|
|||
.Fn crypt_set_format
|
||||
も同様に静的データを変更します。
|
||||
.Sh 歴史
|
||||
ローターを採用した
|
||||
ロータを採用した
|
||||
.Fn crypt
|
||||
関数は、
|
||||
.At v6
|
||||
|
@ -301,7 +301,7 @@ libcrypt
|
|||
.An Mark R V Murray ,
|
||||
.An Kris Kennaway ,
|
||||
.An Brian Feldman ,
|
||||
.An Paul Herman
|
||||
.An Paul Herman ,
|
||||
.\"X and
|
||||
.An Niels Provos
|
||||
によって行なわれました。
|
||||
|
|
|
@ -76,7 +76,7 @@ C
|
|||
オペレータ、キャラクタ試験とキャラクタ・オペレータ、des 暗号ルーチン、
|
||||
記憶割当、時間関数、信号処理他です。
|
||||
.It Xr libcurses Pq Fl l Ns Ar curses Fl l Ns Ar termcap
|
||||
2 次元非ビットマップ・ディスプレィ端末用の端末独立
|
||||
2 次元非ビットマップ・ディスプレイ端末用の端末独立
|
||||
スクリーン管理ルーチン (
|
||||
.Xr ncurses 3
|
||||
を参照)。
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
.\"
|
||||
.\" $Id: pcap.3,v 1.2 2001-05-14 01:08:37 horikawa Exp $
|
||||
.\" $Id: pcap.3,v 1.3 2006-03-08 07:43:48 metal Exp $
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.TH PCAP 3 "24 June 1998"
|
||||
|
@ -282,7 +282,7 @@ stdin.ebuf
|
|||
は、保存ファイルの書込みに使用した pcap のメジャーバージョン番号を戻します。
|
||||
.PP
|
||||
.B pcap_minor_version()
|
||||
は、保存ファイルの書込みに使用した pcap のマイナーバージョン番号を戻します。
|
||||
は、保存ファイルの書込みに使用した pcap のマイナバージョン番号を戻します。
|
||||
.PP
|
||||
.B pcap_file()
|
||||
は「保存ファイル」の名前を戻します。
|
||||
|
|
|
@ -66,8 +66,7 @@
|
|||
関数は、
|
||||
.Fn strstr
|
||||
と同様ですが、
|
||||
両方の文字列を
|
||||
無視します。
|
||||
両方の文字列の大文字と小文字の違いを無視します。
|
||||
.Pp
|
||||
.Fn strnstr
|
||||
関数は、検索された
|
||||
|
|
|
@ -248,7 +248,7 @@ sysctl(mib, 2, p, &len, NULL, 0);
|
|||
.Nm debug19
|
||||
という
|
||||
名前になります。これらは別個の変数として宣言されるので、対応変数の位置で
|
||||
個別に初期化できます。ローダーは、変数が複数の場所で初期化されたときは
|
||||
個別に初期化できます。ローダは、変数が複数の場所で初期化されたときは
|
||||
エラーを出して、同じ変数が複数に使用されるのを回避します。たとえば、変数
|
||||
.Nm dospecialcheck
|
||||
をデバッグ変数としてエクスポートする場合には、次の宣言が
|
||||
|
|
|
@ -202,7 +202,7 @@ cron
|
|||
カーネルにより生成されるメッセージ。これらは、どんな
|
||||
ユーザプロセスによっても生成できません。
|
||||
.It Dv LOG_LPR
|
||||
ラインプリンターのスプーリングシステム:
|
||||
ラインプリンタのスプーリングシステム:
|
||||
.Xr lpr 1
|
||||
、
|
||||
.Xr lpc 8
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id: vgl.3,v 1.4 2002-05-18 07:12:57 horikawa Exp $
|
||||
.\" $Id: vgl.3,v 1.5 2006-03-08 07:43:48 metal Exp $
|
||||
.\" $FreeBSD$
|
||||
|
||||
.Dd August 13, 1997
|
||||
|
@ -289,7 +289,7 @@ dstx" "int dsty" "int width" "int hight"
|
|||
|
||||
引数
|
||||
.Em blank
|
||||
が != 0 である場合は、ディスプレーを空白表示にします。
|
||||
が != 0 である場合は、ディスプレイを空白表示にします。
|
||||
これは、表示更新の間に画面を閉じて、処理が終ったときに初めてユーザが画面を
|
||||
見られるようにするために使えます。
|
||||
|
||||
|
|
|
@ -750,7 +750,7 @@ struct vgapel {
|
|||
.Bl -tag -width 20n -offset indent -compact
|
||||
.It VGAPCVTID
|
||||
現在ドライバの中にコンパイルされているのが pcvt であるかどうかの
|
||||
情報と、そのメジャーリビジョンおよびマイナーリビジョン番号を
|
||||
情報と、そのメジャーリビジョンおよびマイナリビジョン番号を
|
||||
返します。引数として以下の構造体へのポインタをとります:
|
||||
.El
|
||||
|
||||
|
@ -761,7 +761,7 @@ struct pcvtid {
|
|||
#define PCVTIDNAME "pcvt" /* ドライバ ID - 文字列 */
|
||||
int rmajor; /* メジャーリビジョン番号 */
|
||||
#define PCVTIDMAJOR 3
|
||||
int rminor; /* マイナーリビジョン番号 */
|
||||
int rminor; /* マイナリビジョン番号 */
|
||||
#define PCVTIDMINOR 00
|
||||
};
|
||||
.Ed
|
||||
|
|
|
@ -36,7 +36,7 @@ ppbus
|
|||
.Sh 書式
|
||||
.Cd "device ppi0 at ppbus?"
|
||||
.sp
|
||||
マイナー番号: ユニット番号は ppbus 番号に直接対応する。
|
||||
マイナ番号: ユニット番号は ppbus 番号に直接対応する。
|
||||
.Sh 解説
|
||||
.Nm
|
||||
デバイスドライバはユーザアプリケーションが
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
必要な時 (例えばパラメータをセットする時) に限り排他的な
|
||||
アクセスをする必要があります。
|
||||
.Sh サブモード
|
||||
マイナー番号のビット 0 とビット 1 は
|
||||
マイナ番号のビット 0 とビット 1 は
|
||||
.Sq サブモード
|
||||
として解釈されます。
|
||||
サブモードの違いは、デバイスがクローズされた時の挙動にあります:
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
の振舞いとなります。
|
||||
.Pp
|
||||
デフォルトでは、実ユーザまたは実効ユーザ、あるいは実グループ
|
||||
または実行グループが変更されているプロセスはコアファイルを
|
||||
または実効グループが変更されているプロセスはコアファイルを
|
||||
生成しません。
|
||||
この動作は
|
||||
.Xr sysctl 8
|
||||
|
|
|
@ -271,7 +271,7 @@ struct sod {
|
|||
.It Fa sod_major
|
||||
ロードすべき共有オブジェクトのメジャーバージョン番号を指定します。
|
||||
.It Fa sod_minor
|
||||
ロードすべき共有オブジェクトの希望するマイナーバージョン番号を指定します。
|
||||
ロードすべき共有オブジェクトの希望するマイナバージョン番号を指定します。
|
||||
.El
|
||||
.Pp
|
||||
プロセスのアドレス空間にロードされる共有オブジェクト全てを追跡するために、
|
||||
|
|
|
@ -680,7 +680,8 @@ SSH
|
|||
.Xr sendmail 8
|
||||
の負荷に限界を設けるオプションを使うよりも、
|
||||
このオプションを使う方がまともに動作する可能性ははるかに高いです。
|
||||
sendmail の実行を開始する際に、
|
||||
.Xr sendmail 8
|
||||
の実行を開始する際に、
|
||||
.Va MaxDaemonChildren
|
||||
パラメータを設定するべきです。その値は、
|
||||
通常見込まれる負荷を扱える程度に十分高いが、
|
||||
|
@ -688,7 +689,6 @@ sendmail
|
|||
.Xr sendmail 8
|
||||
を操作しようとすると
|
||||
マシンが卒倒してしまうほどには高くないような値に設定するべきです。
|
||||
.\" 翻訳の抜けがあるようだ
|
||||
.Xr sendmail 8
|
||||
を
|
||||
.Dq キュー処理
|
||||
|
|
|
@ -71,8 +71,9 @@ ECP/ISA
|
|||
用のデバイスヒント。
|
||||
.El
|
||||
.Sh バグ
|
||||
制御デバイス名はオプションではなく、オプションの引数とすべきです。
|
||||
こうすれば、引数 1 つはデバイス名として扱われます。
|
||||
制御デバイスのデバイス名は、本来オプション引数で指定されるべきもの
|
||||
だったのですが、オプションで指定するようになっています。
|
||||
そのためオプション引数が1個だった場合、それはデバイス名として解釈されます。
|
||||
.Sh 関連項目
|
||||
.Xr lpt 4 ,
|
||||
.Xr ppc 4 ,
|
||||
|
|
|
@ -131,14 +131,14 @@
|
|||
固有です。
|
||||
.Pp
|
||||
.Fx 4.0
|
||||
では、
|
||||
ブロックデバイスの価値が下がり、キャラクタデバイスが使われるようになりました。
|
||||
の時点でブロックデバイスは廃止され、その機能は
|
||||
キャラクタデバイスに置き換えられました。
|
||||
.Fx 5.0
|
||||
では、デバイスノードはデバイスファイルシステム
|
||||
.Xr devfs 5
|
||||
で管理されるので、
|
||||
.Nm
|
||||
ユーティリティは不必要になりました。
|
||||
ユーティリティは不要になりました。
|
||||
.Sh 関連項目
|
||||
.Xr mkfifo 1 ,
|
||||
.Xr mknod 2 ,
|
||||
|
|
|
@ -151,12 +151,11 @@ RTS
|
|||
全シリアルマウスがこのオプションをサポートするわけではありません。
|
||||
.It Fl V
|
||||
``仮想スクロール'' を有効にします。このオプションが設定されている場合、
|
||||
中マウスボタンを押していると、動きがスクロールと解釈されるようになります。
|
||||
.\" スクロールモードが有効になる前に
|
||||
マウスの中ボタンを押し続けていると、動きがスクロールと解釈されるようになります。
|
||||
スクロールモードを有効にするために
|
||||
マウスが動かなければならない距離を設定するには
|
||||
.Fl U
|
||||
オプションを使って下さい。
|
||||
オプションを使います。
|
||||
.It Fl a Ar X Ns Op , Ns Ar Y
|
||||
マウスの入力を加速または減速します。
|
||||
線型加速のみです。
|
||||
|
@ -253,7 +252,7 @@ RTS
|
|||
が仮定されます。
|
||||
通常では、
|
||||
.Nm
|
||||
ユーティリティがプロトコルの自動検出ができない場合に必要です
|
||||
ユーティリティがプロトコルの自動検出をできない場合に必要です
|
||||
.Pf ( Sx マウスデーモンの構成 )
|
||||
を参照。
|
||||
.Pp
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
.Nm
|
||||
スクリプトは、
|
||||
.Xr rc 8
|
||||
のような様々なスクリプトから利用される、一般的に使用する
|
||||
のような様々なスクリプトから共通に利用される
|
||||
シェルスクリプト関数や変数定義を含んでいます。
|
||||
また ports が要求する
|
||||
.Pa /usr/local/etc/rc.d
|
||||
|
@ -95,11 +95,12 @@
|
|||
書き換えられるでしょう。
|
||||
.Pp
|
||||
.Nm
|
||||
の関数群は、大部分が
|
||||
の関数群は大部分が
|
||||
.Nx
|
||||
から取り込まれたものであり、またそれらは二つのプロジェクト間で同期できるように
|
||||
から取り込まれたものであり、またそれらは二つのプロジェクト間で同期を
|
||||
とり続けられるように
|
||||
考えられています。
|
||||
そのことを考慮した、役に立ついくつかの変数定義があります:
|
||||
これを念頭において、この点に関して助けとなる変数定義がいくつかあります:
|
||||
.Bl -tag -width 4n
|
||||
.It Va OSTYPE
|
||||
この値は
|
||||
|
@ -112,18 +113,18 @@
|
|||
コマンドのパス。
|
||||
.It Va SYSCTL_N
|
||||
.Ar name Ns = Ns Ar value
|
||||
ペアとしてではなく、
|
||||
のペアとしてではなく、
|
||||
.Xr sysctl 8
|
||||
変数のみを表示する際の、パスと引数のリスト。
|
||||
値のみを表示する際の、パスと引数のリスト。
|
||||
.It Va SYSCTL_W
|
||||
.Xr sysctl 8
|
||||
変数を設定または変更する際の、パスと引数。
|
||||
値を設定または変更する際の、パスと引数。
|
||||
.El
|
||||
.Pp
|
||||
.Nm
|
||||
関数群には、カレントシェルで
|
||||
関数群は、カレントシェルで
|
||||
.Pa /etc/rc.subr
|
||||
を読み込む事でアクセスできます。
|
||||
を読み込むことで利用できるようになります。
|
||||
.Pp
|
||||
以下のシェル関数が利用可能です:
|
||||
.Bl -tag -width 4n
|
||||
|
@ -142,9 +143,9 @@
|
|||
は
|
||||
.Xr rcs 1
|
||||
を使ってアーカイブします。
|
||||
そうでなければ、以前のバージョンの
|
||||
そうでない場合の、以前のバージョンの
|
||||
.Ar current
|
||||
は
|
||||
を
|
||||
.Ar backup
|
||||
として保存します。
|
||||
.Pp
|
||||
|
@ -154,7 +155,8 @@
|
|||
.Bl -tag -width ".Cm remove"
|
||||
.It Cm add
|
||||
.Ar file
|
||||
はこのバックアップ機構によりすぐにバックアップされるか、もしくは再投入されます。
|
||||
はこのバックアップ機構により今後バックアップされるようになるか、
|
||||
あるいは再度追加されます。
|
||||
.Ar current
|
||||
が作成され、必要なら、
|
||||
.Xr rcs 1
|
||||
|
@ -167,7 +169,7 @@
|
|||
.Ar backup
|
||||
にコピーされるか、もしくは
|
||||
.Xr rcs 1
|
||||
にチェックされます (リポジトリファイルが古い場合)。
|
||||
にチェックインされます (リポジトリファイルが古い場合)。
|
||||
その後に、
|
||||
.Ar file
|
||||
が
|
||||
|
@ -175,12 +177,12 @@
|
|||
にコピーされます。
|
||||
.It Cm remove
|
||||
.Ar file
|
||||
はこのバックアップ機構で管理される事はもうありません。
|
||||
はこのバックアップ機構で管理されなくなります。
|
||||
.Xr rcs 1
|
||||
が使われている場合は、空のファイルがチェックインされて
|
||||
.Ar current
|
||||
は削除されます。
|
||||
そうでなければ、
|
||||
そうでない場合は、
|
||||
.Ar current
|
||||
は
|
||||
.Ar backup
|
||||
|
@ -193,14 +195,14 @@
|
|||
.Dq Li TRUE ,
|
||||
.Dq Li ON ,
|
||||
.Ql 1
|
||||
ならば、 0 を返します。
|
||||
ならば、0 を返します。
|
||||
.Ar var
|
||||
の値が
|
||||
.Dq Li NO ,
|
||||
.Dq Li FALSE ,
|
||||
.Dq Li OFF ,
|
||||
.Ql 0
|
||||
ならば、 1 を返します。
|
||||
ならば、1 を返します。
|
||||
これら以外の値ならば、
|
||||
.Ar var
|
||||
が正しく設定されていないという警告を出します。
|
||||
|
@ -210,10 +212,10 @@
|
|||
の最初の行の最初の語を解析して PID とし、この PID を持つプロセスが
|
||||
実行されていて、最初の引数が
|
||||
.Ar procname
|
||||
とマッチすることを確かめます。
|
||||
成功すればマッチした PID を出力し、そうでなければ何もしません。
|
||||
にマッチすることを確認します。
|
||||
成功すればマッチした PID を出力し、そうでない場合は何もしません。
|
||||
.Ar interpreter
|
||||
が与えられれば、
|
||||
が与えられた場合、
|
||||
.Ar procname
|
||||
の最初の行を解析して、
|
||||
.Pp
|
||||
|
@ -228,7 +230,7 @@
|
|||
.It Ic check_process Ar procname Op Ar interpreter
|
||||
最初の引数が
|
||||
.Ar procname
|
||||
にマッチする、実行されている任意のプロセスの PID を出力します。
|
||||
にマッチする、実行されているすべてのプロセスの PID を出力します。
|
||||
.Ar interpreter
|
||||
は
|
||||
.Ic check_pidfile
|
||||
|
@ -243,7 +245,7 @@
|
|||
.Va ( $0
|
||||
より),
|
||||
.Dq Li ": DEBUG: " ,
|
||||
及びこれに続く
|
||||
およびこれに続く
|
||||
.Ar message
|
||||
で構成されます。
|
||||
この関数はスクリプトのデバッグの手助けとして、開発者が使用することを
|
||||
|
@ -261,12 +263,13 @@
|
|||
を使用してシステムログに記録をして、終了値
|
||||
.Ar exitval
|
||||
で
|
||||
.Ic 終了します。
|
||||
.Ic 終了
|
||||
します。
|
||||
このエラーメッセージは、スクリプト名
|
||||
.Va ( $0
|
||||
より),
|
||||
.Dq Li ": ERROR: " ,
|
||||
及びこれに続く
|
||||
およびこれに続く
|
||||
.Ar message
|
||||
で構成されます。
|
||||
.It Ic force_depend name
|
||||
|
@ -292,7 +295,7 @@
|
|||
.Va ( $0
|
||||
より),
|
||||
.Dq Li ": INFO: " ,
|
||||
及びこれに続く
|
||||
およびこれに続く
|
||||
.Ar message
|
||||
で構成されます。
|
||||
この情報出力の表示は
|
||||
|
@ -314,7 +317,7 @@
|
|||
引数を上書きする変数定義を含めることもできます。
|
||||
これは管理者が任意の
|
||||
.Xr rc.d 8
|
||||
スクリプトを編集すること無く、その動作を上書きできる簡易な仕組みを提供します。
|
||||
スクリプトを編集することなく、その動作を上書きできる簡易な仕組みを提供します。
|
||||
.It Ic mount_critical_filesystems Ar type
|
||||
.Xr rc.conf 5
|
||||
変数の
|
||||
|
@ -323,13 +326,13 @@
|
|||
いないものがあれば、マウントします。
|
||||
.It Ic rc_usage Ar command ...
|
||||
.Va $0
|
||||
の使用方法を、有効な引数の一覧として、
|
||||
の使用方法を、有効な引数の一覧である
|
||||
.Ar command
|
||||
をプレフィックスの
|
||||
に
|
||||
.Sm off
|
||||
.Dq Bq Li fast | force | one
|
||||
.Sm on
|
||||
と共に出力します。
|
||||
のプレフィックスをつけて出力します。
|
||||
.It Ic reverse_list Ar item ...
|
||||
.Ar item
|
||||
のリストを逆順で出力します。
|
||||
|
@ -352,7 +355,7 @@
|
|||
本コマンドは、
|
||||
.Xr rc.conf 5
|
||||
の指定によりサービスを起動するべきかをチェックします。
|
||||
またサービスが既に実行中で、そのために起動を拒否するかどうかもチェックします。
|
||||
またサービスが既に実行中であるかをチェックし、その場合は起動を拒否します。
|
||||
標準の
|
||||
.Fx
|
||||
スクリプトにおいて、システムが直接マルチユーザモードで起動する場合は、
|
||||
|
@ -369,9 +372,9 @@
|
|||
を実行します。
|
||||
デフォルトでは、 (もし実行中なら) プログラムのプロセス ID を表示します。
|
||||
.It Cm rcvar
|
||||
サービスの起動を制御するのに使用する
|
||||
どの
|
||||
.Xr rc.conf 5
|
||||
変数を (もしあれば) 表示します。
|
||||
変数がサービスの起動を制御しているか、(もしあれば) 表示します。
|
||||
.El
|
||||
.Pp
|
||||
.Va pidfile
|
||||
|
@ -382,7 +385,7 @@
|
|||
.It Cm poll
|
||||
コマンドが終了するのを待ちます。
|
||||
.It Cm status
|
||||
プロセスのステータスを表示します。
|
||||
プロセスの状態を表示します。
|
||||
.El
|
||||
.Pp
|
||||
他にサポートされているコマンドは、オプション変数の
|
||||
|
@ -404,9 +407,9 @@
|
|||
.Va rc_force Ns = Ns Li YES
|
||||
をセットします。
|
||||
.Ar argument Ns Va _precmd
|
||||
が非 0 を返しても無視します。
|
||||
が非 0 を返したり、
|
||||
.Va required_*
|
||||
テストのどれかが失敗しても無視します。
|
||||
テストのどれかが失敗したりしても無視します。
|
||||
また終了ステータスとして常に 0 を返します。
|
||||
.It Li one
|
||||
.Va rcvar
|
||||
|
@ -430,11 +433,11 @@
|
|||
によりチェックされ、この処理を実行するかどうかを判定します。
|
||||
.It Va command
|
||||
コマンドのフルパス。
|
||||
サポートされる各キーワードに対して
|
||||
サポートされている各キーワードに対して
|
||||
.Ar argument Ns Va _cmd
|
||||
が設定されている場合は、必要ありません。
|
||||
.It Va command_args
|
||||
オプション引数、及び / または
|
||||
オプション引数、および / または
|
||||
.Va command
|
||||
に対するシェルディレクティブ。
|
||||
.It Va command_interpreter
|
||||
|
@ -449,40 +452,40 @@
|
|||
.Dl "command_interpreter [...] command"
|
||||
.Pp
|
||||
のようになります。
|
||||
ですので、この文字列は実行中のコマンドの PID を検索するのに、
|
||||
ですので、実行中のコマンドの PID を検索するのに、
|
||||
.Va command
|
||||
の代わりに使用します。
|
||||
ではなくこの文字列を使用します。
|
||||
.It Va extra_commands
|
||||
特別にサポートするコマンド / キーワード / 引数。
|
||||
.It Va pidfile
|
||||
PID ファイルのパス。
|
||||
実行中のコマンドの PID を特定するのに使用します。
|
||||
.Va pidfile
|
||||
が設定された場合、 PID を検索するのには
|
||||
が設定された場合、 PID を検索するには
|
||||
.Pp
|
||||
.Dl "check_pidfile $pidfile $procname"
|
||||
.Pp
|
||||
を使用します。
|
||||
そうでなければ、
|
||||
.Va command
|
||||
が設定されている場合、 PID を検索するのには
|
||||
が設定されている場合、 PID を検索するには
|
||||
.Pp
|
||||
.Dl "check_process $procname"
|
||||
.Pp
|
||||
を使用します。
|
||||
.It Va procname
|
||||
チェックする時のプロセス名。
|
||||
デフォルトは
|
||||
チェックする対象プロセス名。
|
||||
デフォルトでは
|
||||
.Va command
|
||||
の値です。
|
||||
.It Va required_dirs
|
||||
デフォルトの start 処理を実行する前に、これに列挙されたディレクトリの
|
||||
デフォルトの start 処理を実行する前に、これに列挙された各ディレクトリの
|
||||
存在をチェックします。
|
||||
.It Va required_files
|
||||
デフォルトの start 処理を実行する前に、これに列挙されたファイルが
|
||||
読み取り可能かをチェックします。
|
||||
デフォルトの start 処理を実行する前に、これに列挙された各ファイルが
|
||||
読み取り可能かどうかをチェックします。
|
||||
.It Va required_vars
|
||||
デフォルトの start 処理を実行する前に、これに列挙された変数に対して
|
||||
デフォルトの start 処理を実行する前に、これに列挙された各変数に対して
|
||||
.Ic checkyesno
|
||||
を適用します。
|
||||
.It Va ${name}_chdir
|
||||
|
@ -564,7 +567,7 @@ chroot
|
|||
.It Va sig_reload
|
||||
デフォルトの
|
||||
.Cm reload
|
||||
処理において、プロセスを再読み込みさせるのに送られるシグナル。
|
||||
処理において、プロセスに再読み込みさせるのに送られるシグナル。
|
||||
デフォルトは
|
||||
.Dv SIGHUP
|
||||
です。
|
||||
|
@ -630,7 +633,7 @@ chroot
|
|||
.Ic run_rc_command
|
||||
が完了した後だけでなく、
|
||||
.Ar ( argument Ns Va _cmd
|
||||
のような) 処理でも参照できます:
|
||||
のような) 処理でも同様に参照できます:
|
||||
.Bl -tag -width ".Va rc_flags" -offset indent
|
||||
.It Va rc_arg
|
||||
fast 及び force 処理が済んだ後の、
|
||||
|
@ -727,7 +730,7 @@ fast
|
|||
.Pp
|
||||
この関数は適切な
|
||||
.Xr rc.conf 5
|
||||
変数を作成するために、呼び出し側のスクリプトで定義されているべき変数
|
||||
ノブを作成するために、呼び出し側のスクリプトで定義されているべき変数
|
||||
.Va $name
|
||||
の値を使用します。
|
||||
引数
|
||||
|
@ -753,7 +756,7 @@ fast
|
|||
.Va ( $0
|
||||
より),
|
||||
.Dq Li ": WARNING: " ,
|
||||
及びこれに続く
|
||||
およびこれに続く
|
||||
.Ar message
|
||||
で構成されます。
|
||||
.El
|
||||
|
|
|
@ -86,9 +86,8 @@
|
|||
.Xr indent 1
|
||||
に再整形させたくない場合は、
|
||||
それらのコメントのダッシュを星に変えてください。
|
||||
最初のコメント以外のカラムで始まるコメントは
|
||||
最初のカラム以外から始まるコメントは
|
||||
決してライセンス声明とはみなしません。
|
||||
訳注: 行頭にないものはライセンス表明とみなしません。
|
||||
.Pp
|
||||
著作権ヘッダの後には空行を 1 行入れ、ソースファイルには
|
||||
.Va rcsid
|
||||
|
|
Loading…
Reference in a new issue