UNIX のプロセスを管理するモジュールです。
Process がプロセスを表現するクラスではなく、プロセスに対する操作をまとめたモジュールであることに注意してください。
ユーザ ID・グループ ID を操作するシステムコールを直接呼ぶために Process::Sys が提供されています。ポータブルにユーザ ID・グループ ID を操作するためのモジュール Process::UID, Process::GID も提供されています。
abort -> ()
[permalink][rdoc]abort(message) -> ()
関数 Kernel.#abort と同じです。
exec(command, *args) -> ()
[permalink][rdoc]カレントプロセスを与えられた外部コマンドで置き換えます。
引数が一つだけ与えられた場合、command が shell のメタ文字
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
を含む場合、shell 経由で実行されます。そうでなければインタプリタから直接実行されます。
引数が複数与えられた場合、第 2 引数以降は command に直接渡され、インタプリタから直接実行されます。
第 1 引数が 2 要素の配列の場合、第 1 要素の文字列が実際に起動するプログラムのパスで、第 2 要素が「みせかけ」のプログラム名になります。
MSDOS 環境の場合、command はサブシェル経由で実行されます。そうでない場合、command は exec(2) を使用して実行されるので元のプログラムからいくつかの環境を引き継ぎます。
exec "echo *" # echoes list of files in current directory # never get here exec "echo", "*" # echoes an asterisk # never get here
exit(status = true) -> ()
[permalink][rdoc]プロセスを終了します。関数 Kernel.#exit と同じです。
[SEE_ALSO] exit(3)
exit!(status = false) -> ()
[permalink][rdoc]関数 Kernel.#exit! と同じです。
[SEE_ALSO] _exit(2)
fork -> Integer | nil
[permalink][rdoc]fork { ... } -> Integer | nil
子プロセスを生成します。関数 Kernel.#fork と同じです。
[SEE_ALSO] fork(2)
spawn(cmd, *arg) -> Integer
[permalink][rdoc]関数 Kernel.#spawn と同じです。
argv0 -> String
[permalink][rdoc]現在実行中の Ruby スクリプトの名前を表す文字列です。$0 を更新しても本メソッドの戻り値への影響はありません。
本メソッドは 2.1 以降でグローバル変数を用いないで現在実行中の Ruby スクリプトの名前を表す文字列を取得する手段として提供されました。
[SEE_ALSO] Process.#setproctitle, $0
clock_gettime(clock_id, unit=:float_second) -> Float | Integer
[permalink][rdoc]POSIX の clock_gettime() 関数の時間を返します。
例:
p Process.clock_gettime(Process::CLOCK_MONOTONIC) #=> 896053.968060096
SUSv2 to 4, Linux 2.5.63, FreeBSD 3.0, NetBSD 2.0, OpenBSD 2.1, macOS 10.12
SUSv3 to 4, Linux 2.5.63, FreeBSD 3.0, NetBSD 2.0, OpenBSD 3.4, macOS 10.12
SUSv3 to 4, Linux 2.5.63, OpenBSD 5.4, macOS 10.12
SUSv3 to 4, Linux 2.5.63, FreeBSD 7.1, OpenBSD 5.4, macOS 10.12
FreeBSD 3.0, OpenBSD 2.1
FreeBSD 3.0, OpenBSD 2.1
FreeBSD 8.1
FreeBSD 8.1
Linux 2.6.32
Linux 3.0
FreeBSD 8.1
FreeBSD 8.1
Linux 2.6.32
Linux 2.6.28, macOS 10.12
macOS 10.12
Linux 2.6.39
Linux 3.0
FreeBSD 7.0, OpenBSD 5.5
FreeBSD 8.1
macOS 10.12
macOS 10.12
FreeBSD 8.1
FreeBSD 8.1
SUS は Single Unix Specification を意味しており、 SUS は POSIX と POSIX の一部で定義されている clock_gettime を含みます。 SUS では CLOCK_REALTIME は必須ですが、CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID は任意です。
さらに clock_id はいくつかのシンボルを受け付けます。それらは clock_gettime() をエミュレーションします。
たとえば、Process::CLOCK_REALTIME は clock_gettime() がない場合は :GETTIMEOFDAY_BASED_CLOCK_REALTIME と定義されています。
CLOCK_REALTIME のエミュレーション:
SUS で定義されている gettimeofday() を使います。 (しかし SUSv4 で obsoleted になっています) 精度は1マイクロ秒です。
ISO C で定義されている time() を使います。精度は1秒です。
CLOCK_MONOTONIC のエミュレーション:
Darwin で利用可能な mach_absolute_time() を使います。精度は CPU に依存します。
POSIX で定義されている times() の結果を使います。 POSIX では「times() は過去のある時点 (例えばシステムの起動時刻) からの経過クロック数 (clock tick) で実際に経過時間を返します」と定義されています。例えば GNU/Linux では jiffies に基づいた値を返し、monotonic (単調増加が保証されていて、巻き戻ったりしない) です。しかし 4.4BSD では gettimeofday() を使い、monotonic ではありません。 (ただし FreeBSD では clock_gettime(CLOCK_MONOTONIC) を代わりに使います。) 精度はクロック数 (clock tick) です。「getconf CLK_TCK」コマンドで1秒あたりのクロック数を表示できます。 (古いシステムでは、1秒あたりのクロック数は HZ マクロで定義されています。) もし1秒あたりのクロック数が 100 かつ clock_t が32ビット整数型の場合、精度は10ミリ秒で497日以上を表すことはできません。
CLOCK_PROCESS_CPUTIME_ID のエミュレーション:
SUS で定義されている getrusage() を使います。 getrusage() を RUSAGE_SELF と一緒に使うと、(子プロセスの時間をのぞいた) getrusage() を呼び出したプロセスだけの CPU 時間が得られます。ユーザー時間 (ru_utime) とシステム時間 (ru_stime) を足した結果を返します。精度は1マイクロ秒です。
POSIX で定義されている times() を使います。ユーザー時間 (tms_utime) と システム時間 (tms_stime) を足した結果を返します。 tms_cutime と tms_cstime は子プロセスの時間を含みません。精度はクロック数 (clock tick) です。「getconf CLK_TCK」コマンドで1秒あたりのクロック数を表示できます。 (古いシステムでは、1秒あたりのクロック数は HZ マクロで定義されています。) もし1秒あたりのクロック数が100なら、精度は10ミリ秒です。
ISO C で定義されている clock() を使います。精度は 1/CLOCKS_PER_SEC です。 CLOCKS_PER_SEC は time.h で定義されているC言語のマクロです。 SUS では CLOCKS_PER_SEC は 1000000 と定義されています。ただし、Unix 以外のシステムでは異なる値に定義されているかもしれません。 SUS で定義されているように CLOCKS_PER_SEC が 1000000 なら、精度は1マイクロ秒です。 CLOCKS_PER_SEC が 1000000 かつ clock_t が32ビット整数型の場合、72分以上を表すことはできません。
Float の秒 (デフォルト)
Float のミリ秒
Float のマイクロ秒
Integer の秒
Integer のミリ秒
Integer のマイクロ秒
Integer のナノ秒
基になる関数 clock_gettime() はナノ秒を返します。 Float オブジェクト (IEEE 754 double) は CLOCK_REALTIME の結果を表すには不十分です。正確なナノ秒が必要なら、unit に :nanosecond を使ってください。
返値のオリジン(0)は様々です。例えば、システムの起動時刻、プロセス起動時刻、エポックなどです。
CLOCK_REALTIME のオリジンはエポック (1970-01-01 00:00:00 UTC) と定義されています。しかし、システムによってうるう秒をカウントするかどうかが異なります。そのため、結果はシステムによって解釈が異なります。 CLOCK_REALTIME よりも Time.now をおすすめします。
[SEE_ALSO] Time.now
daemon(nochdir = nil, noclose = nil) -> 0
[permalink][rdoc]プロセスから制御端末を切り離し、バックグラウンドにまわってデーモンとして動作させます。
カレントディレクトリを / に移動します。ただし nochdir に真を指定したときにはこの動作は抑制され、カレントディレクトリは移動しません。
標準入力・標準出力・標準エラー出力を /dev/null にリダイレクトします。ただし noclose に真を指定したときにはこの動作は抑制され、リダイレクトは行なわれません。
detach(pid) -> Thread
[permalink][rdoc]子プロセス pid の終了を監視するスレッドを生成して返します。生成したスレッドは子プロセスが終了した後に終了ステータス (Process::Status) を返します。指定した子プロセスが存在しなければ即座に nil で終了します。
pid = fork { # child sleep 3 } p pid # => 7762 th = Process.detach(pid) p th.value # => #<Process::Status: pid 7762 exit 0>
egid -> Integer
[permalink][rdoc]カレントプロセスの実効グループ ID を整数で返します。
[SEE_ALSO] getegid(2)
egid=(gid)
[permalink][rdoc]カレントプロセスの実効グループ ID を gid に設定します。
動作の詳細はプラットフォームに依存します。実効グループ ID 以外のグループ ID も変更されるかも知れません。
[SEE_ALSO] Process::GID.#eid=
euid -> Integer
[permalink][rdoc]カレントプロセスの実効ユーザ ID を整数で返します。
[SEE_ALSO] geteuid(2)
euid=(uid)
[permalink][rdoc]カレントプロセスの実効ユーザ ID を uid に設定します。
動作の詳細はプラットフォームに依存します。実効ユーザ ID 以外のユーザ ID も変更されるかも知れません。
[SEE_ALSO] Process::UID.#eid=
getpgid(pid) -> Integer
[permalink][rdoc]プロセス ID が pid であるプロセスのプロセスグループ ID を整数で返します。
[SEE_ALSO] getpgid(2)
getpgrp -> Integer
[permalink][rdoc]現在のプロセスのプロセスグループ ID を整数で返します。
[SEE_ALSO] getpgrp(2)
getpriority(which, who) -> Integer
[permalink][rdoc]which に従いプロセス、プロセスグループ、ユーザのいずれかの現在のプライオリティを整数で返します。
[SEE_ALSO] getpriority(2)
getrlimit(resource) -> [Integer]
[permalink][rdoc]カレントプロセスでのリソースの制限値を、整数の配列として返します。返り値は、現在の制限値 cur_limit と、制限値として設定可能な最大値 max_limit の配列 [cur_limit, max_limit] です。
それぞれの limit が Process::RLIM_INFINITY と等しい場合、リソースに制限がないことを意味します。
引数 resource で有効な定数は以下のとおりです。
core ファイルのサイズ (バイト) (SUSv3)
プロセスの CPU 時間 (秒) (SUSv3)
プロセスのデータ領域のサイズ (バイト) (SUSv3)
プロセスが生成するファイルのサイズ (バイト) (SUSv3)
プロセスがオープンできるファイルの数 (SUSv3)
プロセスのスタック領域のサイズ (バイト) (SUSv3)
プロセスの仮想メモリサイズ (バイト) (SUSv3, NetBSD, FreeBSD, OpenBSD but 4.4BSD-Lite))
mlock(2) でロックできるトータルのサイズ (バイト) (4.4BSD, GNU/Linux)
そのユーザのプロセスの最大数 (4.4BSD, GNU/Linux)
使用できる実メモリの最大サイズ (バイト) (4.2BSD, GNU/Linux)
ソケットバッファのサイズ (バイト) (NetBSD, FreeBSD)
例:
include Process p lim = getrlimit(RLIMIT_STACK) #=> [8388608, 18446744073709551615] p lim.map{|i| i == RLIM_INFINITY ? "unlimited" : "#{i/(1024**2)}MB" } #=> ["8MB", "unlimited"]
[SEE_ALSO] Process.#setrlimit, getrlimit(2)
getsid(pid = 0) -> Integer
[permalink][rdoc]引数 pid で指定されたプロセスのセッション ID を返します。
Process.getsid() # => 27422 Process.getsid(0) # => 27422 Process.getsid(Process.pid()) # => 27422
[SEE_ALSO] getsid(2)
gid -> Integer
[permalink][rdoc]カレントプロセスの実グループ ID を返します。
[SEE_ALSO] getgid(2)
gid=(gid)
[permalink][rdoc]カレントプロセスの実グループ ID を gid に設定します。
動作の詳細はプラットフォームに依存します。実グループ ID 以外のグループ ID も変更されるかも知れません。
[SEE_ALSO] Process::GID
groups -> [Integer]
[permalink][rdoc]補助グループ ID の配列を返します(実効グループ ID を含むかも知れません)。
返される配列の最大要素数は Process.#maxgroups です。
このメソッドは getgroups(2) の単純なラッパーです。このことは以下の特徴がプラットフォームに依存することを意味します。
ソート済みで重複のないグループ ID の配列の取得は以下のようにできます:
Process.groups.uniq.sort
Process.groups #=> [27, 6, 10, 11]
[SEE_ALSO] getgroups(2)
groups=(gids)
[permalink][rdoc]補助グループを設定します。
root だけがこのメソッドを呼ぶことができます。
[SEE_ALSO] setgroups(2)
initgroups(user, group) -> [Integer]
[permalink][rdoc]user が属するグループのリストを更新し、group をそのリストに加えます。
このメソッドを呼ぶには root 権限が必要です。
kill(signal, pid, *rest) -> Integer
[permalink][rdoc]pid で指定されたプロセスにシグナルを送ります。signal はシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。全てのシグナル送信に成功した場合、指定した pid の総数を返します。
[SEE_ALSO] Kernel.#trap, kill(2)
maxgroups -> Integer
[permalink][rdoc]maxgroups=(num)
設定できる補助グループ ID の数を指定します。
実際に返される補助グループ ID の数よりも少ない値を設定していると、 Process.#groups で例外が発生します。
pid -> Integer
[permalink][rdoc]カレントプロセスのプロセス ID を返します。変数 $$ の値と同じです。
[SEE_ALSO] getpid(2)
ppid -> Integer
[permalink][rdoc]親プロセスのプロセス ID を返します。UNIX では実際の親プロセスが終了した後は ppid は 1 (initの pid)になります。
[SEE_ALSO] getppid(2)
setpgid(pid, pgrp) -> 0
[permalink][rdoc]プロセス ID が pid であるプロセスのプロセスグループを pgrp に設定します。
[SEE_ALSO] setpgid(2)
setpgrp -> 0
[permalink][rdoc]カレントプロセスの ID と同じ ID をもつプロセスグループを作成し、カレントプロセスをそのリーダーにします。 Process.#setpgid(0, 0) と同じです。
fork do p [Process.pid, Process.getpgrp] p Process.setpgrp p [Process.pid, Process.getpgrp] end Process.wait #=> [3427, 3426] 0 [3427, 3427]
[SEE_ALSO] setpgrp(2)
setpriority(which, who, prio) -> 0
[permalink][rdoc]プロセス、プロセスグループ、ユーザのいずれかの現在のプライオリティを設定します。プライオリティの設定に成功した場合は 0 を返します。
以下の例は呼び出したプロセス自身のプライオリティを 10 に下げます。すでに 10 よりもプライオリティが低く、 Errno::EACCES となった場合には無視して実行を続けます。
begin Process.setpriority(Process::PRIO_PROCESS, 0, 10) rescue Errno::EACCES end
[SEE_ALSO] setpriority(2)
setproctitle(title) -> String
[permalink][rdoc]ps(1) が出力する現在実行中の Ruby スクリプトの名前を引数 title で指定した文字列に変更します。
OS によっては何も行われません。また、処理結果に関係なく例外は発生しません。サポートされる OS ではない場合であっても NotImplementedError が発生する事はありません。本メソッドを実行しても $0 への影響はありません。
Process.setproctitle('myapp: worker #%d' % worker_id)
本メソッドは 2.1 以降でグローバル変数を用いないで現在実行中の Ruby スクリプトの名前を表す文字列を設定する手段として提供されました。
[SEE_ALSO] Process.#argv0, $0
setrlimit(resource, cur_limit, max_limit) -> nil
[permalink][rdoc]setrlimit(resource, limit) -> nil
カレントプロセスでのリソースの制限値を設定します。
引数 resource で有効な定数は以下のとおりです。
core ファイルのサイズ (バイト) (SUSv3)
プロセスの CPU 時間 (秒) (SUSv3)
プロセスのデータ領域のサイズ (バイト) (SUSv3)
プロセスが生成するファイルのサイズ (バイト) (SUSv3)
プロセスがオープンできるファイルの数 (SUSv3)
プロセスのスタック領域のサイズ (バイト) (SUSv3)
プロセスの仮想メモリサイズ (バイト) (SUSv3, NetBSD, FreeBSD, OpenBSD but 4.4BSD-Lite))
mlock(2) でロックできるトータルのサイズ (バイト) (4.4BSD, GNU/Linux)
そのユーザのプロセスの最大数 (4.4BSD, GNU/Linux)
使用できる実メモリの最大サイズ (バイト) (4.2BSD, GNU/Linux)
ソケットバッファのサイズ (バイト) (NetBSD, FreeBSD)
引数 limit, cur_limit, max_limit で有効な定数は以下のとおりです。
以下の例は RLIMIT_CORE の制限を hard limit (max limit) まで引き上げ、可能なら core を残すようにします。
Process.setrlimit(Process::RLIMIT_CORE, Process.getrlimit(Process::RLIMIT_CORE)[1])
[SEE_ALSO] setrlimit(2)
setsid -> Integer
[permalink][rdoc]新しいセッションを作成して、tty を切り離します。デーモンを簡単に作ることができます。セッション ID を返します。
[SEE_ALSO] setsid(2)
times -> Struct::Tms
[permalink][rdoc]自身のプロセスとその子プロセスが消費したユーザ/システム CPU 時間の積算を Struct::Tms オブジェクトで返します。時間の単位は秒で、浮動小数点数で与えられます。
[SEE_ALSO] Struct::Tms
uid -> Integer
[permalink][rdoc]プロセスの実ユーザ ID を返します。
[SEE_ALSO] getuid(2)
uid=(id)
[permalink][rdoc]プロセスの実ユーザ ID を id に設定します。
動作の詳細はプラットフォームに依存します。実ユーザ ID 以外のユーザ ID も変更されるかも知れません。
[SEE_ALSO] Process::UID
wait -> Integer
[permalink][rdoc]wait2 -> [Integer, Process::Status]
子プロセスのうちのひとつが終了するまで待ち、終了した子プロセスの pid を返します。 wait2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。
$? に終了した子プロセスの Process::Status オブジェクトがセットされます。
pid = fork{ sleep 1 } Process.wait2 #=> [2756, #<Process::Status: pid=2756,exited(0)>]
[SEE_ALSO] wait(2)
waitall -> [[Integer, Process::Status]]
[permalink][rdoc]全ての子プロセスが終了するのを待ちます。終了した子プロセスの pid と終了ステータス (Process::Status) の配列の配列を返します。子プロセスがいない状態でこのメソッドを呼び出すと空の配列を返します。
$? には最後に終了した子プロセスの Process::Status オブジェクトが設定されます。
2.times {|n| Process.fork() { exit n } } p Process.waitall #=> [[2766, #<Process::Status: pid=2766,exited(1)>], [2765, #<Process::Status: pid=2765,exited(1)>]]
waitpid(pid, flags = 0) -> Integer | nil
[permalink][rdoc]waitpid2(pid, flags = 0) -> [Integer, Process::Status] | nil
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが終了した時に pid を返します。 waitpid2 は pid と Process::Status オブジェクトの配列を返します。ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
$? に終了した子プロセスの Process::Status オブジェクトがセットされます。
[SEE_ALSO] waitpid(2)
CLOCK_BOOTTIME -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_BOOTTIME_ALARM -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_MONOTONIC -> Integer | Symbol
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては :MACH_ABSOLUTE_TIME_BASED_CLOCK_MONOTONIC です。システムによっては定義されていません。
CLOCK_MONOTONIC_COARSE -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_MONOTONIC_FAST -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_MONOTONIC_PRECISE -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_MONOTONIC_RAW -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_MONOTONIC_RAW_APPROX -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_PROCESS_CPUTIME_ID -> Integer | Symbol
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては :GETRUSAGE_BASED_CLOCK_PROCESS_CPUTIME_ID です。システムによっては定義されていません。
CLOCK_PROF -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_REALTIME -> Integer | Symbol
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては :GETTIMEOFDAY_BASED_CLOCK_REALTIME です。システムによっては定義されていません。
CLOCK_REALTIME_ALARM -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_REALTIME_COARSE -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_REALTIME_FAST -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_REALTIME_PRECISE -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_SECOND -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_THREAD_CPUTIME_ID -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_UPTIME -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_UPTIME_FAST -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_UPTIME_PRECISE -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_UPTIME_RAW -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_UPTIME_RAW_APPROX -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
CLOCK_VIRTUAL -> Integer
[permalink][rdoc]Process.#clock_gettime で使われます。
システムによっては定義されていません。
PRIO_PGRP -> Integer
[permalink][rdoc]対象とするプライオリティがプロセスグループプライオリティであることを表す定数です。
Process.#getpriority または Process.#setpriority で使われます。
PRIO_PROCESS -> Integer
[permalink][rdoc]対象とするプライオリティがプロセスプライオリティであることを表す定数です。
Process.#getpriority または Process.#setpriority で使われます。
PRIO_USER -> Integer
[permalink][rdoc]対象とするプライオリティがユーザプライオリティであることを表す定数です。
Process.#getpriority または Process.#setpriority で使われます。
RLIMIT_AS -> Integer
[permalink][rdoc]リソースの種類がプロセスの仮想メモリサイズであることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_CORE -> Integer
[permalink][rdoc]リソースの種類が core ファイルのサイズであることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_CPU -> Integer
[permalink][rdoc]リソースの種類がプロセスの CPU 時間であることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_DATA -> Integer
[permalink][rdoc]リソースの種類がプロセスのデータ領域のサイズであることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_FSIZE -> Integer
[permalink][rdoc]リソースの種類がプロセスが生成するファイルのサイズであることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_MEMLOCK -> Integer
[permalink][rdoc]リソースの種類が mlock(2) でロックできるトータルのサイズであることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_NOFILE -> Integer
[permalink][rdoc]リソースの種類がプロセスがオープンできるファイルの数であることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_NPROC -> Integer
[permalink][rdoc]リソースの種類がユーザのプロセスの最大数であることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_RSS -> Integer
[permalink][rdoc]リソースの種類が使用できる実メモリの最大サイズであることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_SBSIZE -> Integer
[permalink][rdoc]リソースの種類がソケットバッファのサイズであることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIMIT_STACK -> Integer
[permalink][rdoc]リソースの種類がプロセスのスタック領域のサイズであることを示す定数です。
Process.#getrlimit、Process.#setrlimit で使われます。システムによっては定義されていません。
RLIM_INFINITY -> Integer
[permalink][rdoc]リソースに制限がないことを意味する定数です。
Process.#getrlimit、Process.#setrlimit で使われます。
RLIM_SAVED_CUR -> Integer
[permalink][rdoc]Process.#getrlimit, Process.#setrlimit で使われます。詳しくは setrlimit(2) を参照して下さい。
RLIM_SAVED_MAX -> Integer
[permalink][rdoc]Process.#getrlimit, Process.#setrlimit で使われます。詳しくは setrlimit(2) を参照して下さい。
WNOHANG -> Integer
[permalink][rdoc]Process.#waitpid の第二引数に指定するフラグです。終了した子プロセスがない時でも waitpid がブロックしません。
WUNTRACED -> Integer
[permalink][rdoc]Process.#waitpid の第二引数に指定するフラグです。このフラグが指定された場合、waitpid は停止しているだけで終了していない子プロセスのプロセス ID も返すようになります。 trace されている子プロセスの ID は返しません。
include Process pid = fork{ Process.kill('SIGSTOP', Process.pid) } p pid #=> 4336 p waitpid2(pid, WUNTRACED) #=> [4336, #<Process::Status: pid=4336,stopped(SIGSTOP=19)>]
[SEE_ALSO] waitpid(2)