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.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 は現在、作成中で日々更新されています。



検索コマンド: 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 を含
                          みます。

     PROC_STACKGAP_CTL    指定されたプロセスのスタックギャップを制御します。ス
                          タックギャップは、メモリによって予約され、決して満た
                          されない MAP_STACK マップされた領域のための成長エリ
                          アの部分です。代わりに、プロセスは、ギャップのアクセ
                          スページの SIGSEGV シグナルを受信すると保証されてい
                          ます。ギャップは、スタックと隣接しているスタックオー
                          バフローの破損したメモリに対して保護します。

                          data 引数は、フラグを含んでいる整数変数を指さなけれ
                          ばなりません。次のフラグが、許可されています:

                          PROC_STACKGAP_ENABLE        このフラグは、
                                                      PROC_STACKGAP_STATUS と
                                                      の一貫性のためだけに受け
                                                      付けられます。スタック
                                                      ギャップが有効であるな
                                                      ら、フラグは、無視されま
                                                      す。無効にされるなら、フ
                                                      ラグは、EINVAL エラーを
                                                      返します。ギャップがプロ
                                                      セスで無効にされた後に、
                                                      それらは、execve(2) が実
                                                      行されるときのみ、再び有
                                                      効にすることができます。

                          PROC_STACKGAP_DISABLE       プロセスのためのスタック
                                                      ギャップを無効にします。
                                                      存在するスタックについ
                                                      て、ギャップは、もはや成
                                                      長エリアの予約された部分
                                                      ではなく、アクセスでメモ
                                                      リによって満たされること
                                                      ができます。

                          PROC_STACKGAP_ENABLE_EXEC   指定されたプロセスによっ
                                                      て execve(2) の後に、開
                                                      始されたプログラムのため
                                                      のスタックギャップを有効
                                                      にします。

                          PROC_STACKGAP_DISABLE_EXEC  execve(2) の後に、無効の
                                                      スタックギャップ状態を継
                                                      承します。言い換えると、
                                                      現在の実行プログラムに、
                                                      無効にされたスタック
                                                      ギャップがあるなら、それ
                                                      らは、exec で無効にされ
                                                      続けられます。ギャップが
                                                      有効にされたなら、それら
                                                      は、exec の後に有効にさ
                                                      れ続けます。

                          スタックギャップの状態は、fork(2) の親から継承されま
                          す。

     PROC_STACKGAP_STATUS
                          指定されたプロセスのための現在のスタックギャップの状
                          態を返します。data は、次のフラグから成るビットマス
                          クを返すために使用される、整数変数を指さなければなり
                          ません:

                          PROC_STACKGAP_ENABLE        スタックギャップは、有効
                                                      にされます。

                          PROC_STACKGAP_DISABLE       スタックギャップは、無効
                                                      にされます。

                          PROC_STACKGAP_ENABLE_EXEC   スタックギャップは、
                                                      execve(2) の後に、プロセ
                                                      スで有効にされます。

                          PROC_STACKGAP_DISABLE_EXEC  スタックギャップは、
                                                      execve(2) の後に、プロセ
                                                      スで無効にされます。


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

戻り値
     エラーが生じるなら、-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.4                    April 25, 2020                    FreeBSD 11.4

Table of Contents

FreeBSD マニュアル検索