EN JA
PROCCTL(2)
PROCCTL(2) FreeBSD System Calls Manual PROCCTL(2)

名称

procctlプロセスを制御する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/procctl.h>

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

解説

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

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

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

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

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

戻り値

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

エラー

procctl() システムコールは、次の場合に失敗します:
[ EFAULT]
arg が、プロセスの割り付けられたアドレス空間の外側を指しています。
[ EINVAL]
cmd 引数が、サポートされないコマンドを指定しています。

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

[ EPERM]
呼び出しているプロセスは、選択されたプロセスのいずれかで、要求された操作を実行する許可がありません。
[ ESRCH]
プロセスが要求された idtypeid と一致しませんでした。
[ EINVAL]
無効の操作またはフラグが、 PROC_SPROTECT コマンドのための arg で渡されました。

関連項目

ptrace(2)

歴史

procctl() 関数は、 FreeBSD 10.0 で登場しました。
September 19, 2013 FreeBSD