日本語 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
LIBPROCSTAT(3) FreeBSD ライブラリ関数マニュアル LIBPROCSTAT(3) 名称 procstat_close, procstat_freeargv, procstat_freeauxv, procstat_freeenvv, procstat_freefiles, procstat_freegroups, procstat_freekstack, procstat_freeprocs, procstat_freevmmap, procstat_get_pipe_info, procstat_get_pts_info, procstat_get_sem_info, procstat_get_shm_info, procstat_get_socket_info, procstat_get_vnode_info, procstat_getargv, procstat_getauxv, procstat_getenvv, procstat_getfiles, procstat_getgroups, procstat_getkstack, procstat_getosrel, procstat_getpathname, procstat_getprocs, procstat_getrlimit, procstat_getumask, procstat_getvmmap, procstat_open_core, procstat_open_kvm, procstat_open_sysctl -- ファイルとプロセス情報検索のた めのライブラリインタフェース ライブラリ プロセスとファイル情報を検索 (libprocstat, -lprocstat) 書式 #include <sys/param.h> #include <sys/queue.h> #include <sys/socket.h> #include <libprocstat.h> void procstat_close(struct procstat *procstat); void procstat_freeargv(struct procstat *procstat); void procstat_freeauxv(struct procstat *procstat, Elf_Auxinfo *auxv); void procstat_freeenvv(struct procstat *procstat); void procstat_freefiles(struct procstat *procstat, struct filestat_list *head); void procstat_freegroups(struct procstat *procstat, gid_t *groups); void procstat_freekstack(struct procstat *procstat, struct kinfo_kstack *kkstp); void procstat_freeprocs(struct procstat *procstat, struct kinfo_proc *p); void procstat_freevmmap(struct procstat *procstat, struct kinfo_vmentry *vmmap); int procstat_get_pipe_info(struct procstat *procstat, struct filestat *fst, struct pipestat *pipe, char *errbuf); int procstat_get_pts_info(struct procstat *procstat, struct filestat *fst, struct ptsstat *pts, char *errbuf); int procstat_get_sem_info(struct procstat *procstat, struct filestat *fst, struct semstat *sem, char *errbuf); int procstat_get_shm_info(struct procstat *procstat, struct filestat *fst, struct shmstat *shm, char *errbuf); int procstat_get_socket_info(struct procstat *procstat, struct filestat *fst, struct sockstat *sock, char *errbuf); int procstat_get_vnode_info(struct procstat *procstat, struct filestat *fst, struct vnstat *vn, char *errbuf); char ** procstat_getargv(struct procstat *procstat, const struct kinfo_proc *kp, size_t nchr); Elf_Auxinfo * procstat_getauxv(struct procstat *procstat, struct kinfo_proc *kp, unsigned int *count); char ** procstat_getenvv(struct procstat *procstat, const struct kinfo_proc *kp, size_t nchr); struct filestat_list * procstat_getfiles(struct procstat *procstat, struct kinfo_proc *kp, int mmapped); gid_t * procstat_getgroups(struct procstat *procstat, struct kinfo_proc *kp, unsigned int *count); struct kinfo_kstack * procstat_getkstack(struct procstat *procstat, struct kinfo_proc *kp, unsigned int *count); int procstat_getosrel(struct procstat *procstat, struct kinfo_proc *kp, int *osrelp); int procstat_getpathname(struct procstat *procstat, struct kinfo_proc *kp, char *pathname, size_t maxlen); struct kinfo_proc * procstat_getprocs(struct procstat *procstat, int what, int arg, unsigned int *count); int procstat_getrlimit(struct procstat *procstat, struct kinfo_proc *kp, int which, struct rlimit* rlimit); int procstat_getumask(struct procstat *procstat, struct kinfo_proc *kp, unsigned short *maskp); struct kinfo_vmentry * procstat_getvmmap(struct procstat *procstat, struct kinfo_proc *kp, unsigned int *count); struct procstat * procstat_open_core(const char *filename); struct procstat * procstat_open_kvm(const char *nlistf, const char *memf); struct procstat * procstat_open_sysctl(void); 解説 libprocstat ライブラリは、ランタイムファイルと sysctl(3) ライブラリバック エンドを通して実行しているカーネルからのプロセス情報検索のため、そして kvm(3) ライブラリバックエンドを通して、または特別の elf(3) の注釈セクショ ンの統計値を検索して、プロセス core(5) ファイルからポストモーテム (post mortem) 解析のための API を含んでいます。 procstat_open_kvm() と procstat_open_sysctl() 関数は、プロセスとファイル 状態を検索するために使用されるカーネル状態情報にアクセスするために、それ ぞれ kvm(3) または sysctl(3) ライブラリルーチンを使用します。 procstat_open_core() は、プロセスの異常終了の瞬間にカーネルによって書き込 まれる、プロセスの core(5) ファイルに 1 組の注釈として格納された統計にア クセスするために elf(3) ルーチンを使用します。filename 引数は、プロセスの コアファイルの名前です。nlistf 引数は、調査されるカーネルの実行形式のイ メージです。この引数が NULL であるなら、現在実行しているカーネルが、想定 されます。memf 引数は、カーネルメモリデバイスファイルです。この引数が NULL であるなら、/dev/mem が、想定されます。その他の詳細については、 kvm_open(3) を参照してください。関数は、procstat_open_*() 関数によって割 り付けられたリソースをクリアする、対応する procstat_close() が呼び出すま で、libprocstat ライブラリルーチンの残りで使用される procstat 構造体のポ インタを動的に割り付けて、返します。 procstat_getprocs() 関数は、procstat_open_*() 関数の 1 つから procstat 構 造体へのポインタを取得し、kinfo_proc 構造体の配列に満たされたカーネルの動 的に割り付けられたアクティブなプロセスの (サブ) セットを返します。what と arg 引数は、kvm_getprocs(3) 関数で説明されているようにフィルタリング述語 を構成します。見つけられたプロセスの数は、参照パラメータ cnt に返されま す。呼び出し側は、その後の procstat_freeprocs() 関数呼び出しで割り付けら れたメモリを解放すること責任があります。 procstat_getargv() 関数は、procstat_open_*() 関数の 1 つから procstat 構 造体へのポインタ、kvm_getprocs() 関数から獲得された配列から kinfo_proc 構 造体へのポインタを取得し、プロセスに渡されたコマンド行引数に対応するヌル 文字で終了する引数ベクトルを返します。nchr 引数は、文字列を構築で使用する ために null バイトを含む、最大の文字数を示します。この合計が超過するな ら、オーバフローを引き起こす文字列は、切り捨てられ、部分的な結果が返され ます。これは、コマンドの 1 つの行の要約だけを印刷し、それを無視するために テキストのみの大量をコピーするべきでないプログラムにとって便利です。nchr が 0 であるなら、制限は、課されず、すべての引数の文字列が返されます。返さ れた引数ベクトルの値は、procstat 内部バッファに格納された文字列を参照しま す。同じ procstat 引数がある関数の続く呼び出しは、バッファを再使用しま す。割り付けられたメモリを解放するために、procstat_freeargv() 関数呼び出 しを使用することができるか、または、procstat_close() で解放されます。 procstat_getenvv() 関数は、procstat_getargv() に似ていますが、環境文字列 のベクトルを返します。呼び出し側は、続く procstat_freeenvv() 関数呼出しを で割り当てられたメモリを解放します。 procstat_getauxv() 関数は、procstat 構造体へのポインタ、kinfo_proc 構造体 へのポインタを取得して、Elf_Auxinfo 要素の動的に割り付けられた配列として 補助のベクトルを返します。呼び出し側は、続く procstat_freeauxv() 関数呼出 しで割り付けられたメモリを解放するのに責任があります。 procstat_getfiles() 関数は、procstat_open_*() 関数の 1 つで初期化された procstat 構造体へのポインタ、kvm_getprocs() 関数から取得された配列から kinfo_proc 構造体へのポインタを取得し、queue(3) で定義された STAILQ マク ロを使用して満たされた filestat_list 構造体の動的に割り付けられたリンクさ れたリストを返します。呼び出し側は、その後の procstat_freefiles() 関数呼 び出しで割り付けられたメモリを解放すること責任があります。 procstat_getgroups() 関数は、procstat 構造体へのポインタ、kinfo_proc 構造 体へのポインタを取得し、gid_t 要素の動的に割り付けられた配列としてプロセ スグループを返します。呼び出し側は、その後の procstat_freegroups() 関数呼 び出しで割り付けられたメモリを解放すること責任があります。 procstat_getkstack() 関数は、procstat_open_*() 関数の 1 つで初期化される procstat 構造体へのポインタ、kinfo_proc 構造体へのポインタを取得し、 kinfo_kstack 構造体の動的に割り付けられた配列としてプロセスのカーネルス タックを返します。呼び出し側は、その後の procstat_freekstack() 関数呼び出 しで割り付けられたメモリを解放すること責任があります。 procstat_getosrel() 関数は、procstat 構造体へのポインタ、kinfo_proc 構造 体へのポインタを取得し、3 番目の参照パラメータで osrel 日付を返します。 procstat_getpathname() 関数は、procstat 構造体へのポインタ、kinfo_proc 構 造体へのポインタを取得し、maxlen 文字に制限して、pathname バッファへのプ ロセスの実行形式のパスをコピーします。 procstat_getrlimit() 関数は、procstat 構造体へのポインタ、kinfo_proc 構造 体へのポインタ、リソースインデックス which を取得し、4 番目の参照パラメー タで実際のリソースの制限を返します。 procstat_getumask() 関数は、procstat 構造体へのホインタ、kinfo_proc 構造 体へのポインタを取得して、3 番目の参照パラメータでプロセスの umask を返し ます。 procstat_getvmmap() 関数は、procstat_open_*() 関数の 1 つで初期化された procstat 構造体へのポインタ、kinfo_proc 構造へのポインタを取得し、 kinfo_vmentry 構造体の動的に割り付けられた配列としてプロセスの VM レイア ウトを返します。呼び出し側は、その後の procstat_freevmmap() 関数呼び出し で割り付けられたメモリを解放すること責任があります。 procstat_get_pipe_info(), procstat_get_pts_info(), procstat_get_sem_info(), procstat_get_shm_info(), procstat_get_socket_info() と procstat_get_vnode_info() 関数は、それぞれ パイプ、疑似端末、セマフォ、共有メモリオブジェクト、ソケットと vnode に関 する検索情報のために使用されます。それぞれのそれらには、同様のインタ フェース API があります。procstat 引数は、procstat_open_*() 関数の 1 つか ら取得されたポインタです。filestat fst 引数は、procstat_getfiles() 関数か ら取得された STAILQ のリンクされたリストの要素です。filestat 構造体は、 ファイルタイプを指定する fs_type フィールドと procstat_get_*_info 関数 ファミリに共通して呼び出される対応する関数を含んでいます。実際のオブジェ クトは、3 番目の参照パラメータで返されます。errbuf 引数は、失敗の場合に実 際のエラーメッセージを示します。 PS_FST_TYPE_FIFO procstat_get_vnode_info PS_FST_TYPE_VNODE procstat_get_vnode_info PS_FST_TYPE_SOCKET procstat_get_socket_info PS_FST_TYPE_PIPE procstat_get_pipe_info PS_FST_TYPE_PTS procstat_get_pts_info PS_FST_TYPE_SEM procstat_get_sem_info PS_FST_TYPE_SHM procstat_get_shm_info 関連項目 fstat(1), fuser(1), pipe(2), shm_open(2), socket(2), elf(3), kvm(3), queue(3), sem_open(3), sysctl(3), pts(4), core(5), vnode(9) 歴史 libprocstat ライブラリは、FreeBSD 9.0 で登場しました。 作者 libprocstat ライブラリは、Stanislav Sedov <stas@FreeBSD.org> によって書か れました。 このマニュアルページは、Sergey Kandaurov <pluknet@FreeBSD.org> によって書 かれました。 FreeBSD 11.4 July 29, 2017 FreeBSD 11.4