Ruby 2.6.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Processモジュール

module Process

クラス・モジュールの継承リスト: Process

要約

UNIX のプロセスを管理するモジュールです。

Process がプロセスを表現するクラスではなく、プロセスに対する操作をまとめたモジュールであることに注意してください。

ユーザ ID・グループ ID を操作するシステムコールを直接呼ぶために Process::Sys が提供されています。ポータブルにユーザ ID・グループ ID を操作するためのモジュール Process::UID, Process::GID も提供されています。

特異メソッド

定義 説明
abort -> ()
abort(message) -> ()

関数 Kernel.#abort と同じです。

exec(command, *args) -> ()

カレントプロセスを与えられた外部コマンドで置き換えます。

exit(status = true) -> ()

プロセスを終了します。関数 Kernel.#exit と同じです。

exit!(status = false) -> ()

関数 Kernel.#exit! と同じです。

fork -> Integer | nil
fork { ... } -> Integer | nil

子プロセスを生成します。関数 Kernel.#fork と同じです。

last_status -> Process::Status | nil

カレントスレッドで最後に終了した子プロセスのステータスを返します。

spawn(cmd, *arg) -> Integer

関数 Kernel.#spawn と同じです。

モジュール関数

定義 説明
argv0 -> String

現在実行中の Ruby スクリプトの名前を表す文字列です。$0 を更新しても本メソッドの戻り値への影響はありません。

clock_gettime(clock_id, unit=:float_second) -> Float | Integer

POSIX の clock_gettime() 関数の時間を返します。

daemon(nochdir = nil, noclose = nil) -> 0

プロセスから制御端末を切り離し、バックグラウンドにまわってデーモンとして動作させます。

detach(pid) -> Thread

子プロセス pid の終了を監視するスレッドを生成して返します。生成したスレッドは子プロセスが終了した後に終了ステータス (Process::Status) を返します。指定した子プロセスが存在しなければ即座に nil で終了します。

egid -> Integer

カレントプロセスの実効グループ ID を整数で返します。

egid=(gid)

カレントプロセスの実効グループ ID を gid に設定します。

euid -> Integer

カレントプロセスの実効ユーザ ID を整数で返します。

euid=(uid)

カレントプロセスの実効ユーザ ID を uid に設定します。

getpgid(pid) -> Integer

プロセス ID が pid であるプロセスのプロセスグループ ID を整数で返します。

getpgrp -> Integer

現在のプロセスのプロセスグループ ID を整数で返します。

getpriority(which, who) -> Integer

which に従いプロセス、プロセスグループ、ユーザのいずれかの現在のプライオリティを整数で返します。

getrlimit(resource) -> [Integer]

カレントプロセスでのリソースの制限値を、整数の配列として返します。返り値は、現在の制限値 cur_limit と、制限値として設定可能な最大値 max_limit の配列 [cur_limit, max_limit] です。

getsid(pid = 0) -> Integer

引数 pid で指定されたプロセスのセッション ID を返します。

gid -> Integer

カレントプロセスの実グループ ID を返します。

gid=(gid)

カレントプロセスの実グループ ID を gid に設定します。

groups -> [Integer]

補助グループ ID の配列を返します(実効グループ ID を含むかも知れません)。

groups=(gids)

補助グループを設定します。

initgroups(user, group) -> [Integer]

user が属するグループのリストを更新し、group をそのリストに加えます。

kill(signal, pid, *rest) -> Integer

pid で指定されたプロセスにシグナルを送ります。signal はシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。全てのシグナル送信に成功した場合、指定した pid の総数を返します。

maxgroups -> Integer
maxgroups=(num)

設定できる補助グループ ID の数を指定します。

pid -> Integer

カレントプロセスのプロセス ID を返します。変数 $$ の値と同じです。

ppid -> Integer

親プロセスのプロセス ID を返します。UNIX では実際の親プロセスが終了した後は ppid は 1 (initの pid)になります。

setpgid(pid, pgrp) -> 0

プロセス ID が pid であるプロセスのプロセスグループを pgrp に設定します。

setpgrp -> 0

カレントプロセスの ID と同じ ID をもつプロセスグループを作成し、カレントプロセスをそのリーダーにします。 Process.#setpgid(0, 0) と同じです。

setpriority(which, who, prio) -> 0

プロセス、プロセスグループ、ユーザのいずれかの現在のプライオリティを設定します。プライオリティの設定に成功した場合は 0 を返します。

setproctitle(title) -> String

ps(1) が出力する現在実行中の Ruby スクリプトの名前を引数 title で指定した文字列に変更します。

setrlimit(resource, cur_limit, max_limit) -> nil
setrlimit(resource, limit) -> nil

カレントプロセスでのリソースの制限値を設定します。

setsid -> Integer

新しいセッションを作成して、tty を切り離します。デーモンを簡単に作ることができます。セッション ID を返します。

times -> Process::Tms

自身のプロセスとその子プロセスが消費したユーザ/システム CPU 時間の積算を Process::Tms オブジェクトで返します。時間の単位は秒で、浮動小数点数で与えられます。

uid -> Integer

プロセスの実ユーザ ID を返します。

uid=(id)

プロセスの実ユーザ ID を id に設定します。

wait(pid = -1, flags = 0) -> Integer | nil
wait2(pid = -1, flags = 0) -> [Integer, Process::Status] | nil
waitpid(pid = -1, flags = 0) -> Integer | nil
waitpid2(pid = -1, flags = 0) -> [Integer, Process::Status] | nil

pid で指定される特定の子プロセスの終了を待ち、そのプロセスが終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。

waitall -> [[Integer, Process::Status]]

全ての子プロセスが終了するのを待ちます。終了した子プロセスの pid と終了ステータス (Process::Status) の配列の配列を返します。子プロセスがいない状態でこのメソッドを呼び出すと空の配列を返します。

定数

定義 説明
CLOCK_BOOTTIME -> Integer

Process.#clock_gettime で使われます。

CLOCK_BOOTTIME_ALARM -> Integer

Process.#clock_gettime で使われます。

CLOCK_MONOTONIC -> Integer | Symbol

Process.#clock_gettime で使われます。

CLOCK_MONOTONIC_COARSE -> Integer

Process.#clock_gettime で使われます。

CLOCK_MONOTONIC_FAST -> Integer

Process.#clock_gettime で使われます。

CLOCK_MONOTONIC_PRECISE -> Integer

Process.#clock_gettime で使われます。

CLOCK_MONOTONIC_RAW -> Integer

Process.#clock_gettime で使われます。

CLOCK_MONOTONIC_RAW_APPROX -> Integer

Process.#clock_gettime で使われます。

CLOCK_PROCESS_CPUTIME_ID -> Integer | Symbol

Process.#clock_gettime で使われます。

CLOCK_PROF -> Integer

Process.#clock_gettime で使われます。

CLOCK_REALTIME -> Integer | Symbol

Process.#clock_gettime で使われます。

CLOCK_REALTIME_ALARM -> Integer

Process.#clock_gettime で使われます。

CLOCK_REALTIME_COARSE -> Integer

Process.#clock_gettime で使われます。

CLOCK_REALTIME_FAST -> Integer

Process.#clock_gettime で使われます。

CLOCK_REALTIME_PRECISE -> Integer

Process.#clock_gettime で使われます。

CLOCK_SECOND -> Integer

Process.#clock_gettime で使われます。

CLOCK_THREAD_CPUTIME_ID -> Integer

Process.#clock_gettime で使われます。

CLOCK_UPTIME -> Integer

Process.#clock_gettime で使われます。

CLOCK_UPTIME_FAST -> Integer

Process.#clock_gettime で使われます。

CLOCK_UPTIME_PRECISE -> Integer

Process.#clock_gettime で使われます。

CLOCK_UPTIME_RAW -> Integer

Process.#clock_gettime で使われます。

CLOCK_UPTIME_RAW_APPROX -> Integer

Process.#clock_gettime で使われます。

CLOCK_VIRTUAL -> Integer

Process.#clock_gettime で使われます。

PRIO_PGRP -> Integer

対象とするプライオリティがプロセスグループプライオリティであることを表す定数です。

PRIO_PROCESS -> Integer

対象とするプライオリティがプロセスプライオリティであることを表す定数です。

PRIO_USER -> Integer

対象とするプライオリティがユーザプライオリティであることを表す定数です。

RLIMIT_AS -> Integer

リソースの種類がプロセスの仮想メモリサイズであることを示す定数です。

RLIMIT_CORE -> Integer

リソースの種類が core ファイルのサイズであることを示す定数です。

RLIMIT_CPU -> Integer

リソースの種類がプロセスの CPU 時間であることを示す定数です。

RLIMIT_DATA -> Integer

リソースの種類がプロセスのデータ領域のサイズであることを示す定数です。

RLIMIT_FSIZE -> Integer

リソースの種類がプロセスが生成するファイルのサイズであることを示す定数です。

RLIMIT_MEMLOCK -> Integer

リソースの種類が mlock(2) でロックできるトータルのサイズであることを示す定数です。

RLIMIT_NOFILE -> Integer

リソースの種類がプロセスがオープンできるファイルの数であることを示す定数です。

RLIMIT_NPROC -> Integer

リソースの種類がユーザのプロセスの最大数であることを示す定数です。

RLIMIT_RSS -> Integer

リソースの種類が使用できる実メモリの最大サイズであることを示す定数です。

RLIMIT_SBSIZE -> Integer

リソースの種類がソケットバッファのサイズであることを示す定数です。

RLIMIT_STACK -> Integer

リソースの種類がプロセスのスタック領域のサイズであることを示す定数です。

RLIM_INFINITY -> Integer

リソースに制限がないことを意味する定数です。

RLIM_SAVED_CUR -> Integer

Process.#getrlimit, Process.#setrlimit で使われます。詳しくは setrlimit(2) を参照して下さい。

RLIM_SAVED_MAX -> Integer

Process.#getrlimit, Process.#setrlimit で使われます。詳しくは setrlimit(2) を参照して下さい。

WNOHANG -> Integer

Process.#waitpid の第二引数に指定するフラグです。終了した子プロセスがない時でも waitpid がブロックしません。

WUNTRACED -> Integer

Process.#waitpid の第二引数に指定するフラグです。このフラグが指定された場合、waitpid は停止しているだけで終了していない子プロセスのプロセス ID も返すようになります。 trace されている子プロセスの ID は返しません。