FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 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.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | ライブラリ | 書式 | 解説 | | 戻り値 | エラー | 関連項目 | 歴史
PROCCTL(2)             FreeBSD システムコールマニュアル             PROCCTL(2)

名称
     procctl -- プロセスを制御する

ライブラリ
     標準 C ライブラリ (libc, -lc)

書式
     #include <sys/procctl.h>

     int
     procctl(idtype_t idtype, id_t id, int cmd, void *arg);

解説
     procctl() システムコールは、プロセスを制御するために提供します。idtypeid 引数は、制御するプロセスの組を指定します。複数のプロセスが識別子と一致
     するなら、procctl は、できるだけ選択されたプロセスの多くを制御するために
     ``best effort'' (最善の努力) を行います。選択されたプロセスが成功して要求
     を終了しないなら、エラーが単に返されます。次の識別子のタイプがサポートさ
     れます:

     P_PID      プロセス ID id があるプロセスを制御します。

     P_PGID     ID id があるプロセスグループに属するプロセスを制御します。

     実行する制御要求は、cmd 引数によって指定されます。次のコマンドがサポート
     されます:

     PROC_SPROTECT           プロセス保護状態を設定します。これは、システムが
                             利用可能なメモリとスワップを使い果たすなら、kill
                             されることから保護されるプロセスをマークするため
                             に使用されます。arg パラメータは、操作と 0 以上の
                             オプションのフラグを含んでいる整数を指さなければ
                             なりません。次の操作がサポートされます:

                             PPROT_SET       保護される選択されたプロセスを
                                             マークします。

                             PPROT_CLEAR     選択されたプロセスの保護された状
                                             態をクリアします。

                             次のオプションのフラグがサポートれます:

                             PPROT_DESCEND     各選択されたプロセスに加えて、
                                               各選択されたプロセスのすべての
                                               子プロセスに要求された操作を適
                                               用します。

                             PPROT_INHERIT     PPROT_SET とともに使用されると
                                               き、保護される各選択されたプロ
                                               セスの将来の子プロセスをすべて
                                               マークします。また、将来の子プ
                                               ロセスは、それらの将来の子プロ
                                               セスをすべてマークします。

     PROC_REAP_ACQUIRE       現在のプロセスのための reaper の状態を獲得しま
                             す。reaper 状態は、reaper 状態の獲得が reaper プ
                             ロセスに repar (再教育) される後に、フォークされ
                             たreaper の子孫によって子供が孤立されたことを意味
                             しています。システムの初期化の後に、init(8) は、
                             デフォルトの reaper です。

     PROC_REAP_RELEASE       現在のプロセスのための reaper 状態をリリースしま
                             す。現在のプロセスの reaper は、現在のプロセスの
                             子孫の新しい reaper になります。

     PROC_REAP_STATUS        それが reaper であるとき、指定されたプロセスの
                             reaper に関しての情報、またはプロセス自体を提供し
                             ます。data 引数は、成功して返るとき、システムコー
                             ルによって書き込まれる、procctl_reaper_status 構
                             造体を指さなければなりません。

                             struct procctl_reaper_status {
                                     u_int   rs_flags;
                                     u_int   rs_children;
                                     u_int   rs_descendants;
                                     pid_t   rs_reaper;
                                     pid_t   rs_pid;
                             };
                             rs_flags は、次のフラグを返させます:

                             REAPER_STATUS_OWNED        指定されたプロセスは、
                                                        reaper 状態を獲得し、
                                                        それにリリースされませ
                                                        ん。フラグが返されると
                                                        き、指定されたプロセス
                                                        id pid は、reaper を識
                                                        別し、そうでなければ、
                                                        構造体の rs_reaper
                                                        フィールドは、指定され
                                                        たプロセス id のための
                                                        reaper の pid に設定さ
                                                        れます。

                             REAPER_STATUS_REALINIT     指定されたプロセスは、
                                                        reaper ツリーのルート
                                                        です、すなわち、
                                                        init(8)rs_children フィールドは、子孫のうちの reaper の
                             子供の数を返します。あらゆる既存の子供のための
                             reaper が、PROC_REAP_ACQUIRE 操作でリセットされな
                             いので、reaper が指定されたプロセスではない子供が
                             あることが可能です。rs_descendants フィールドは、
                             (複数の) reaper の子孫の合計の数を返し、サブツ
                             リーの reaper の子孫をカウントしません。rs_reaper
                             フィールドは、reaper pid を返します。rs_pid
                             フィールドは、いくつかの子孫があるなら、1 つの
                             reaper の子供の pid を返します。

     PROC_REAP_GETPIDS       指定されたプロセスの reaper の子孫のリストを問い
                             合わせます。要求は、data パラメータの
                             procctl_reaper_pids 構造体へのポインタを取りま
                             す。

                             struct procctl_reaper_pids {
                                     u_int   rp_count;
                                     struct procctl_reaper_pidinfo *rp_pids;
                             };
                             呼び出されるとき、rp_pids フィールドは、返り時に
                             書き込まれる、procctl_reaper_pidinfo 構造体の配列
                             を指さなければならず、rp_count フィールドは、た
                             だ、rp_count 要素がカーネルによって書き込まれる、
                             配列のサイズを指定しなければなりません。

                             struct procctl_reaper_pidinfo 構造体は、reaper の
                             子孫の 1 つに関するいくらかの情報を提供します。子
                             供ではない子孫のために、それは、終了したオリジナ
                             ルの子供プロセスと終了したプロセスの pid が、関係
                             のないプロセスのために、再利用される競合のため
                             に、不正確に識別されることに注意してください。

                             struct procctl_reaper_pidinfo {
                                     pid_t   pi_pid;
                                     pid_t   pi_subtree;
                                     u_int   pi_flags;
                             };
                             pi_pid フィールドは、子孫のプロセス id です。
                             pi_subtree フィールドは、プロセスの親 (または祖父
                             母) である reaper の子供の pid を提供します。
                             pi_flags フィールドは、さらなる子孫を記述する、次
                             のフラグを返します。

                             REAPER_PIDINFO_VALID      procctl_reaper_pidinfo
                                                       構造体がカーネルによっ
                                                       て書き込まれたことを示
                                                       すように設定します。
                                                       rp_pids 配列を 0 で満た
                                                       し、
                                                       REAPER_PIDINFO_VALID フ
                                                       ラグをテストすること
                                                       は、呼び出し側が、返さ
                                                       れた配列の終わりを検出
                                                       することを可能にしま
                                                       す。

                             REAPER_PIDINFO_CHILD      pi_pid フィールドは、
                                                       reaper の直接的な子供を
                                                       識別します。

                             REAPER_PIDINFO_REAPER     報告されたプロセス自体
                                                       は、収穫者 (reaper) で
                                                       す。下位の収穫者
                                                       (reaper) の子孫は、報告
                                                       されません。

     PROC_REAP_KILL          reaper の子孫のいくらかのサブセットへのシグナルを
                             配信することを要求します。data パラメータは、返さ
                             れるパラメータと状態の両方のために使用される、
                             procctl_reaper_kill 構造体を指さなければなりませ
                             ん。

                             struct procctl_reaper_kill {
                                     int     rk_sig;
                                     u_int   rk_flags;
                                     pid_t   rk_subtree;
                                     u_int   rk_killed;
                                     pid_t   rk_fpid;
                             };
                             rk_sig フィールドは、配信されるシグナルを指定しま
                             す。0 は、kill(2) と違って有効なシグナル番号では
                             ありません。rk_flags フィールドは、さらなる操作を
                             指示します。それは、次のフラグを論理和 (OR) され
                             ます:

                             REAPER_KILL_CHILDREN     reaper の直接の子供にだ
                                                      け指定されたシグナルを配
                                                      信します。

                             REAPER_KILL_SUBTREE      rk_subtree フィールドで
                                                      指定された pid で直接の
                                                      子供によってフォークされ
                                                      た子孫だけに指定されたシ
                                                      グナルを配信します。
                             REAPER_KILL_CHILDREN も REAPER_KILL_SUBTREE フラ
                             グも指定されないなら、reaper のすべての現在の子孫
                             は、シグナルが起こされます。

                             シグナルがあらゆるプロセスに配信されたなら、要求
                             からの返り値は、0 です。この場合に、rk_killed
                             フィールドは、シグナルが起こされたプロセスの数を
                             識別します。rk_fpid フィールドは、例えば、パー
                             ミッションの問題のために、シグナルの配信が失敗し
                             た最初のプロセスの pid に設定されます。そのような
                             プロセスが存在しないなら、rk_fpid フィールドは、
                             -1 に設定されます。

     PROC_TRACE_CTL          整数引数の値にしたがって、指定された (複数の) プ
                             ロセスのトレースを有効にするか、または無効にしま
                             す。トレースは、ptrace(2)ktrace(2), デバック
                             の sysctl hwpmc(4), dtrace(1) とコアダンプを使用
                             して、プロセスへのアタッチメントを含みます。data
                             引数のために指定できる値は、次の通りです:

                             PROC_TRACE_CTL_ENABLE           それが
                                                             PROC_TRACE_CTL_DISABLE
                                                             によって無効にさ
                                                             れた後に、トレー
                                                             スを有効にしま
                                                             す。自体のために
                                                             のみ許可されま
                                                             す。

                             PROC_TRACE_CTL_DISABLE          指定されたプロセ
                                                             スのためにトレー
                                                             スを無効にしま
                                                             す。プロセスが
                                                             execve(2) syscall
                                                             で実行しているプ
                                                             ログラムを変更す
                                                             るとき、トレース
                                                             は、再び有効にさ
                                                             れます。子供のプ
                                                             ロセスは、fork(2)
                                                             で親プロセスから
                                                             トレースの設定を
                                                             引き継ぎます。

                             PROC_TRACE_CTL_DISABLE_EXEC     PROC_TRACE_CTL_DISABLE
                                                             と同じですが、
                                                             execve(2) の後で
                                                             さえプロセスのた
                                                             めの設定の持続を
                                                             除きます。

     PROC_TRACE_STATUS       data によって指された整数変数の指定されたプロセス
                             のための現在のトレースの状態を返します。トレース
                             が無効にされるなら、data は、-1 に設定されます。
                             トレースが有効にされますが、デバッガが ptrace(2)
                             syscall によってアタッチされていないなら、data
                             は、0 に設定されます。デバッガがアタッチされるな
                             ら、data は、デバッガプロセスの pid に設定されま
                             す。

     PROC_TRAPCAP_CTL        ENOTCAPABLE または ECAPMODE エラーにいずれかを与
                             えるあらゆる syscall からの返りで、指定されたサン
                             ドボック化されたプロセスのためのケーパビリティ
                             モードのサンドボックのアクションを制御します。制
                             御が有効であるなら、syscall からのそのようなエ
                             ラーは、syscall から返る直前に、同時的な SIGTRAP
                             シグナルをスレッドに配信します。

                             data 引数のために指定できる値は、次の通りです:

                             PROC_TRAPCAP_CTL_ENABLE      ケーパビリティモード
                                                          のアクセス違反で
                                                          SIGTRAP シグナルの配
                                                          信を有効にします。有
                                                          効にされたモードは、
                                                          プロセスの子プロセス
                                                          によって継承され、
                                                          fexecve(2) 呼び出し
                                                          の後に保持されます。

                             PROC_TRAPCAP_CTL_DISABLE     ケーパビリティモード
                                                          のアクセス違反でシグ
                                                          ナルの配信を無効にし
                                                          ます。グローバルな
                                                          sysctl
                                                          kern.trap_enotcap
                                                          は、まだシグナルを配
                                                          信しているかもしれな
                                                          いことに注意してくだ
                                                          さい。capsicum(4) を
                                                          参照してください。

                             シグナルの配信において、siginfo シグナルハンドラ
                             のパラメータの si_errno メンバは、syscall のエ
                             ラー値に設定され、si_code メンバは、TRAP_CAP に設
                             定されます。

                             ケーパビリティモードに関する詳細については、
                             capsicum(4) を参照してください。

     PROC_TRAPCAP_STATUS     指定されたプロセスのためのシグナル伝達ケーパビリ
                             ティモードのアクセス違反の現在の状態を返します。
                             data 引数によって指される整数値は、プロセス制御が
                             シグナルの配信を有効にするなら、
                             PROC_TRAPCAP_CTL_ENABLE に設定され、そうでなけれ
                             ば、PROC_TRAPCAP_CTL_DISABLE に設定されます。

                             シグナルの配信の独立していグローバルな制御を与え
                             る、上記の sysctl kern.trap_enotcap に関する注を
                             参照してください。

     PROC_PDEATHSIG_CTL      呼び出しているプロセスの親が終了するとき、シグナ
                             ルの配信を要求します。idtype は、P_PID でなければ
                             なりません、id は、有効な違いなしで、呼び出し側の
                             pid または 0 のいずれかでなければなりません。値
                             は、セットユーザ ID (set-user-ID) またはセットグ
                             ループ ID (set-group-ID) バイナリを実行するとき、
                             子プロセスのためにクリアされます。arg は、呼び出
                             し側に配達されるべきシグナルを示しているタイプ
                             int の値を指さなければなりません。以前に要求され
                             たシグナルの配信をキャンセルするために 0 を使用し
                             ます。

     PROC_PDEATHSIG_STATUS   呼び出しているプロセスの親が終了するとき、配信さ
                             れる、現在のシグナル数を問い合わせます。idtype
                             は、P_PID でなければなりません、id は、有効な違い
                             なしで、呼び出し側の pid または 0 のいずれかでな
                             ければなりません。arg は、タイプ int の値を保持す
                             ることができるメモリ位置を指さなければなりませ
                             ん。シグナルの配信が要求されなかったなら、それ
                             は、返るときに、0 を含みます。


     プロセスのトレースを無効にすることは、他のシステムメカニズムを通して、
     カーネルと特権が与えられたプロセスによって、バイパス可能であるように、セ
     キュリティ機能と見なすべきではありません。そのようなものとして、それは、
     暗号化法のキー入力の素材または他の秘密のデータを確実に保護するために利用
     されるべきではありません。

戻り値
     エラーが生じるなら、-1 の値が、返され errno は、エラーを示す値に設定され
     ます。

エラー
     procctl() システムコールは、次の場合に失敗します:

     [EFAULT]           arg パラメータが、プロセスの割り付けられたアドレス空間
                        の外側を指しています。

     [EINVAL]           cmd 引数が、サポートされないコマンドを指定しています。

                        idtype 引数は、サポートされない識別子のタイプを指定し
                        ます。

     [EPERM]            呼び出しているプロセスは、選択されたプロセスのいずれか
                        で、要求された操作を実行する許可がありません。

     [ESRCH]            プロセスが要求された idtypeid と一致しませんでし
                        た。

     [EINVAL]           無効の操作またはフラグが、PROC_SPROTECT コマンドのため
                        の arg で渡されました。

     [EPERM]            idtype 引数が、P_PID と等しくないか、または id が、
                        PROC_REAP_ACQUIRE または PROC_REAP_RELEASE 要求のため
                        の、呼び出しているプロセスの pid と等しくありません。

     [EINVAL]           無効のまたは未定義のフラグが、PROC_REAP_KILL 要求に渡
                        されました。

     [EINVAL]           無効のまたは 0 のシグナル番号が、PROC_REAP_KILL 要求の
                        ために要求されました。

     [EINVAL]           PROC_REAP_RELEASE 要求が、init(8) プロセスによって発行
                        されました。

     [EBUSY]            PROC_REAP_ACQUIRE 要求が、すでに reaper 状態を獲得した
                        プロセスによって発行され、まだ、それをリリースしません
                        でした。

     [EBUSY]            PROC_TRACE_CTL 要求が、既にトレースされているプロセス
                        に対して発行されました。

     [EPERM]            プロセス (PROC_TRACE_CTL_ENABLE) のトレースを再有効に
                        するため、または execve(2) で PROC_TRACE_CTL_DISABLE
                        の持続性を無効にする PROC_TRACE_CTL 要求が、現在でない
                        プロセスのために発行されました。

     [EINVAL]           PROC_TRACE_CTL または PROC_TRAPCAP_CTL 要求のための整
                        数 data パラメータの値が、無効です。

     [EINVAL]           PROC_PDEATHSIG_CTL または PROC_PDEATHSIG_STATUS 要求
                        が、サポートされていない id, idtype または無効のシグナ
                        ル番号を参照しました。

関連項目
     dtrace(1), cap_enter(2,) kill(2), ktrace(2), ptrace(2), wait(2),
     capsicum(4), hwpmc(4), init(8)

歴史
     procctl() 関数は、FreeBSD 10.0 で登場しました。reaper 機能は、Linux と
     DragonflyBSD の同様な機能に基づき、FreeBSD 10.2 ではじめて登場しました。
     PROC_PDEATHSIG_CTL 機能は、Linux の prctl(PR_SET_PDEATHSIG, ...) 機能に基
     づき、FreeBSD 11.2 ではじめて登場しました。

FreeBSD 11.2                     May 12, 2018                     FreeBSD 11.2

Table of Contents

FreeBSD マニュアル検索