日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
PDFORK(2) FreeBSD システムコールマニュアル PDFORK(2)
名称
pdfork, pdgetpid, pdkill -- プロセス記述子を管理するためのシステムコール
ライブラリ
標準 C ライブラリ (libc, -lc)
書式
#include <sys/procdesc.h>
pid_t
pdfork(int *fdp, int flags);
int
pdgetpid(int fd, pid_t *pidp);
int
pdkill(int fd, int signum);
解説
プロセス記述子は、プロセスを表し、成功するなら、fdp によって指された整数
のプロセス記述子を返す、fork(2) の変異型である、pdfork() を使用して作成さ
れる特殊なファイル記述子です。pdfork() を通して作成されたプロセスは、終了
時に SIGCHLD を引き起こしません。pdfork() は、次のフラグを受け付けます:
PD_DAEMON デフォルトのクローズ時の終了 (terminate-on-close) の振る舞いの
代わりに、プロセスは、kill(2) で明白に kill されるまで、生き続
けることができます。
このオプションは、capsicum(4) ケーパビリティモードで許可されま
せん (cap_enter(2) を参照)。
PD_CLOEXEC
プロセス記述子で close-on-exec を設定します。
pdgetpid() は、プロセス記述子 fd で、プロセス ID (PID) を問い合わせます。
pdkill() は、PID でなく、プロセス記述子 fd を受け付けることを除いて、
kill(2) と機能的に同じです。
また、次のシステムコールは、プロセス記述子に特有の影響を与えます:
fstat(2) は、プロセス記述子の状態について問い合わせます。現在、st_mode,
st_birthtime, st_atime, st_ctime と st_mtime フィールドだけが定義されてい
ます。所有者の読み込み、書き込みと実行ビットが設定されているなら、プロセ
ス記述子によって表されるプロセスは、まだ生きています。
poll(2) と select(2) は、プロセス状態遷移に対してウェートすることができま
す。現在、POLLHUP だけが定義され、プロセスが死ぬとき、引き起こされます。
kqueue(2) フィルタ EVFILT_PROCDESC を使用してプロセス状態遷移をモニタする
ことができます。現在、NOTE_EXIT だけが実装されています。
close(2) は、PD_DAEMON が設定されていないなら、プロセス記述子をクローズし
ます。プロセスがまだ生きていて、これがプロセス記述子への最後の参照である
なら、プロセスは、シグナル SIGKILL で終了されます。
戻り値
pdfork() は、fork(2) が行うように、PID、0 または -1 を返します。
pdgetpid() と pdkill() は、成功すれば 0 を、失敗すれば -1 を返します。
エラー
これらの関数は、次を追加して、それらの PID ベースと同等物と同じエラー番号
を返します (例えば、pdfork() は、fork(2) と同じエラー番号を返します):
[EINVAL] pdkill() へ与えられたシグナル番号が無効です。
[ENOTCAPABLE] 動作しているプロセス記述子には、十分な権利がありません
(例えば、pdkill() のための CAP_PDKILL)。
関連項目
close(2), fork(2), fstat(2), kill(2), kqueue(2), poll(2), wait4(2),
capsicum(4), procdesc(4)
歴史
pdfork(), pdgetpid() と pdkill() システムコールは、FreeBSD 9.0 ではじめて
登場しました。
プロセス記述子モードのサポートは、TrustedBSD プロジェクトの一環として開発
されました。
作者
これらの関数とケーパビリティ機能は、Google Inc. からの助成金の支援によっ
て University of Cambridge Computer Laboratory の Robert N. M. Watson
<rwatson@FreeBSD.org> と Jonathan Anderson <jonathan@FreeBSD.org> によっ
て作成されました。
FreeBSD 13.2 October 14, 2018 FreeBSD 13.2